Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ListBox

ListBox
28.10.2015 22:58:06
Go
Hallo zusammen,
ich möchte gerne in einer ListBox mir nur die Daten anzeigen lassen, die in Spalte B einen bestimmten Begriff haben.
Also: Listbox = Daten aus Spalte A nur dann anzeigen, wenn in Spalte B die Zahl 1 steht.
Danke schon mal im Voraus für die Hilfe.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
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


Anzeige
Not rngZelle Is Nothing ...
29.10.2015 09:32:56
Rudi
Hallo Karin,
... ist überflüssig!
Die Schleife wird ja nur ausgeführt, wenn rngZelle nicht Nothing ist. Somit kann rngZelle auch nie Nothing werden, sondern nur zur ersten Fundzelle.
Loop While strStart rngZelle.Address
reicht völlig.
Wahrscheinlich stammt die Abbruchbedingung aus der VBA-Hilfe und wird seit Jahrzehnten kritiklos übernommen.
Gruß
Rudi

Danke für den Hinweis - o.w.T.
29.10.2015 16:32:26
Beverly


Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige