ich hab ein kleines Problem mit meiner Bedingung innerhalb einer For Schleife:
Sub Verteilen()
Dim Suchrange As Range, Kopierrange As Range, Einfuegerange As Range
Dim wsOr As Worksheet, wsKo As Worksheet
Dim Zelle As Range
Set wsOr = ThisWorkbook.Worksheets("Upload")
Set wsKo = ThisWorkbook.Worksheets("Input ext.")
Set Kopierrange = wsKo.UsedRange.Columns(2).Offset(9, 0)
For Each Zelle In Kopierrange.Resize(Kopierrange.Rows.Count - 9).Cells
'Wenn Spalte 5 in jeweiliger Zeile leer ist, stoppe die Schleife und gehe zum Ende
If Zelle.Columns(5).Value = "" Then
Exit For
GoTo Ende
Else
'Wenn die Spalte 5 des Bereichs Zelle NICHT leer ist, dann führe aus
'If Zelle.Columns(5).Value "" Then
Set Suchrange = wsOr.Columns(2).Find(what:=Zelle.Value, LookIn:=xlValues, LookAt:= _
xlWhole)
If Suchrange Is Nothing Then
Zelle.EntireRow.Copy wsOr.Cells(wsOr.Rows.Count, 5).End(xlUp).Offset(1, -4)
'Set Einfuegerange = wsOr.Cells(wsOr.Rows.Count, 3).End(xlUp).Offset(1, -2)
'Zelle.EntireRow.Copy Einfuegerange
'Zelle.EntireRow.Clear
Zelle.EntireRow.Delete
GoTo Weiter
Else
Zelle.EntireRow.Copy Suchrange.Offset(0, -1)
'Zelle.EntireRow.Clear
Zelle.EntireRow.Delete
GoTo Weiter
End If
End If
Weiter:
Next Zelle
Ende:
Set wsOr = Nothing
Set wsKo = Nothing
Set Kopierrange = Nothing
End Sub
Die Bedingung prüft für jeden Bereich, ob Spalte 5 leer ist oder nicht. Wenn die Zelle nicht leer ist, soll der Code innerhalb der Schleife ausgeführt werden. Wenn die Zelle leer ist, soll die Schleife abgebrochen werden und zum Ende des Codes gegangen werden. An eine Do while Schleife hab ich auch schon gedacht, aber ich glaub das funktioniert nicht, weil ich den Bereich ja erst mit Zelle in der For Schleife definiere.
Aktuell läuft es so, dass ich für jede Zeile einmal den Coden ausführen muss. Er macht zwar alles richtig, springt nur nicht in den nächsten Bereich, also in "Next Zelle".
Hat hier jemand eine Lösung?
VG
Kathrin