Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ListBox

Forumthread: 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.

Anzeige

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

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


;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige