AW: eine Variante ist: AddItem ...
29.10.2015 08:10:03
Beverly
Hi,
den Code könnte man noch etwas schneller machen, wenn man nicht jede Zeile durchläuft sondern mittels der FindNext-Methode nur die relevanten Treffer sucht:
Private Sub UserForm_Activate()
Dim rngZelle As Range
Dim strStart As String
Dim lngLetzte As Long
' letzte belegte Zeile in Spalte A ermitteln
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), _
Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
' in Spalte B nach 1 suchen, dabei nach der letzten belegten Zeile beginnen
Set rngZelle = Columns(2).Find(1, lookat:=xlWhole, after:=Cells(lngLetzte, 2))
' 1 wurde gefunden
If Not rngZelle Is Nothing Then
' Adresse der gefundenen Zelle auf die Variable schreiben
' ist erforderlich, damit die Suchschleife verlassen werden kann, wenn die
' erste gefundene Zelle erneut gefunden und die Schleife nicht endlos läuft
strStart = rngZelle.Address
' Schuchschleife
Do
' Zelle links von der gefundenen Zelle in die ListBox schreiben
ListBox1.AddItem rngZelle.Offset(0, -1)
' nächsten Treffer suchen
Set rngZelle = Columns(2).FindNext(rngZelle)
' Schleife so lange durchlaufen bis 1 nicht mehr gefunden wird und
' die Adresse der gefundenen Zelle von der Startadresse ist
Loop While Not rngZelle Is Nothing And strStart rngZelle.Address
End If
End Sub