Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

In einer For-Schleife Bedingung nicht erfüllt dann..
#1
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.

:)
Antworten Top
#2
Code:
Next i
Schöne Grüße
Berni
Antworten Top
#3
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
Antworten Top
#4
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
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#5
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
Code:
weitermachen:
Next i
Schöne Grüße
Berni
Antworten Top
#6
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
Antworten Top
#7
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:
  • Terades
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste