Registriert seit: 22.01.2018
Version(en): 2010, 2016
Hi zusammen,
ich habe eine For Schleife in der folgender Inhalt vorkommt.
If rng Is Nothing Then
Fehler = Fehler + 1
Exit For
End If
Doch anstatt des Exit for würde ich gerne dass er die Variable i um einen erhöht und wieder am anfang der Forschleife mit dem erhöhtem i-Wert weiter macht.
Wie bekomm ich das hin?
Vielen dank schonmal.
:)
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Registriert seit: 22.01.2018
Version(en): 2010, 2016
31.07.2018, 14:21
(Dieser Beitrag wurde zuletzt bearbeitet: 31.07.2018, 14:21 von Terades.)
Dann wirft er den Fehler ... next ohne for.. weil die For schleife ja nicht in der If anweisung drin ist :(
Code:
Sub Suchen()
Dim Eingabe As String
Dim rng As Range
Dim i As Integer
Fehler = 0
For i = 15 To 16
'-----------Quellen-----------
ID = Sheets(2).Cells(i, 1)
DT = Sheets(2).Cells(i, 5)
ML = Sheets(2).Cells(i, 6)
BE = Sheets(2).Cells(i, 8)
FB = Sheets(2).Cells(i, 9)
AK = Sheets(2).Cells(i, 10)
Eingabe = Left(Sheets(2).Range("B" & i), 7)
'------Hier wird in blatt aktivitäten B"x" als Such wert genommen------
Set rng = Workbooks("Kühlturm_Tagebuch").Sheets(1).Range("C1:C100").Find(Eingabe)
'------Suchen in der Datei im Übersichtsblatt nach der Maschine und dem Blatt-----
If rng Is Nothing Then
Fehler = Fehler + 1
Next i
End If
'-----------Zielblatt festlegen-------------
Ziel = Workbooks("Kühlturm_Tagebuch").Sheets(1).Range("B" & rng.Row).Value
Debug.Print Ziel
'-------Bereich definieren-------
LRow = Sheets(Ziel).Range("A19").End(xlDown).Row + 1
'Windows("Kühlturm_Tagebuch.xlsm").Activate
Sheets(Ziel).Cells(LRow, 1) = ID 'ETZ-ID_ Quelle: "A"
Sheets(Ziel).Cells(LRow, 2) = DT 'Datum _ Quelle: "E"
Sheets(Ziel).Cells(LRow, 3) = ML 'Melder _ Quelle: "F"
Sheets(Ziel).Cells(LRow, 4) = BE 'Beschreibung_ Quelle: "H"
Sheets(Ziel).Cells(LRow, 5) = FB 'FehlerB._ Quelle: "I"
Sheets(Ziel).Cells(LRow, 6) = AK 'Aktivität _ Quelle: "J"
Next i
Sheets(Ziel).Select
End Sub
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
31.07.2018, 14:28
(Dieser Beitrag wurde zuletzt bearbeitet: 31.07.2018, 14:28 von Käpt'n Blaubär.)
Hallo,
Zitat:Dann wirft er den Fehler ... next ohne for.. weil die For schleife ja nicht in der If anweisung drin ist :(
... gelöscht, weil meine Frage schon beantwortet ist
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Du hast ja jetzt auch 2 x Next i drinstehen.
Deine Frage vorhin war dermaßen unkonkret, dass du nur eine unkonkrete Antwort bekommen konntest
Code:
If rng Is Nothing Then
Fehler = Fehler + 1
GoTo weitermachen
End If
und weiter unten
Schöne Grüße
Berni
Registriert seit: 22.01.2018
Version(en): 2010, 2016
Sry dafür.
Habs hinbekommen:
Code:
Sub Suchen()
Dim Eingabe As String
Dim rng As Range
Dim i As Integer
Fehler = 0
For i = 8 To 12
'-----------Quellen-----------
ID = Sheets(2).Cells(i, 1)
DT = Sheets(2).Cells(i, 5)
ML = Sheets(2).Cells(i, 6)
BE = Sheets(2).Cells(i, 8)
FB = Sheets(2).Cells(i, 9)
AK = Sheets(2).Cells(i, 10)
Eingabe = Left(Sheets(2).Range("B" & i), 7)
'------Hier wird in blatt aktivitäten B"x" als Such wert genommen------
Set rng = Workbooks("Kühlturm_Tagebuch").Sheets(1).Range("C1:C100").Find(Eingabe)
'------Suchen in der Datei im Übersichtsblatt nach der Maschine und dem Blatt-----
If rng Is Nothing Then
Fehler = Fehler + 1
Debug.Print "Fehler"
Else
'-----------Zielblatt festlegen-------------
Ziel = Workbooks("Kühlturm_Tagebuch").Sheets(1).Range("B" & rng.Row).Value
Debug.Print Ziel
'-------Bereich definieren-------
LRow = Sheets(Ziel).Range("A19").End(xlDown).Row + 1
'Windows("Kühlturm_Tagebuch.xlsm").Activate
Sheets(Ziel).Cells(LRow, 1) = ID 'ETZ-ID_ Quelle: "A"
Sheets(Ziel).Cells(LRow, 2) = DT 'Datum _ Quelle: "E"
Sheets(Ziel).Cells(LRow, 3) = ML 'Melder _ Quelle: "F"
Sheets(Ziel).Cells(LRow, 4) = BE 'Beschreibung_ Quelle: "H"
Sheets(Ziel).Cells(LRow, 5) = FB 'FehlerB._ Quelle: "I"
Sheets(Ziel).Cells(LRow, 6) = AK 'Aktivität _ Quelle: "J"
Debug.Print "OK"
End If
Next i
End Sub
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
mal ein paar Anmerkungen.
1 .Du hast hier die Variablen Fehler und Ziel nicht in der Prozedur deklariert.
2. Ich gehe mal davon aus, das die Variable Fehler nicht als Modulvariable oder als globale Variable deklariert ist, dann ist eine Anweisung Fehler = 0 nicht nötig.
3. Ich würde in der Find-Methode die optionalen Parameter Lookat und LookIn mit angebenn ansonsten kannst Du ein falsches Ergebnis erhalten (siehe OH zur Find-Methonde).
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• Terades