Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
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 Suche erweitern

Listbox Suche erweitern
27.08.2019 14:35:39
Julius
Hallo zusammen,
vor kurzen hat mir der User ounor hier weitergeholfen.
Ich möchte nun diese Lösung um einen (ggf später um einen anderen) Punkt erweitern.
Leider Blick ich den Aufbau der Listbox nicht ganz.
Es soll in einer weiteren Spalte nach einem Eintrag gesucht und entsprechende Funde ausgewertet werden.
Ich habe angefangen rum zu probieren, komme aber nicht ganz auf eine Lösung.
Das was ich auskommentiert habe, ist dass was ich dazu gepackt habe.
Wie müsste ich es umstellen, dass ich in der Listbox 3 Spalten habe, deren Inhalt angezeigt wird.
KdNr | Kundenname | Aktion 1 Vielen Dank
Private Sub SuchText_Change()
Dim z, Nam, Kud, Akt1
zl = Sheets("Aktive").UsedRange.Rows.Count
FoundList.Clear
With Sheets("Aktive")
For z = 5 To zl
'Akt1 = .Cells(z, 29).Text ' Spalte Aktion 1
Nam = .Cells(z, 2).Text ' Zweite Spalte Kundenname
Kud = .Cells(z, 1).Text ' Erste Spalte Kundennummer
If Nam  "" Then
If InStr(1, Nam, SuchText, 1) > 0 Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
End If
'            If Akt1  "" Then
'                If InStr(1, Akt1, SuchText, 1) > 0 Then
'                    FoundList.AddItem Cells(z, 29)
'                    FoundList.List(FoundList.ListCount - 1, 29) = Cells(z, 2)
'                End If
If Kud  "" Then
If Len(SuchText) > 30 Then SuchText = Left(SuchText, 30)
If Left(Kud, Len(SuchText)) = SuchText Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
End If
End If
End If
'End If
Next z
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox Suche erweitern
27.08.2019 15:26:49
Matthias
Moin!
Ungeprüft könnte es so aussehen.
Private Sub SuchText_Change()
Dim z, Nam, Kud, Akt1
zl = Sheets("Aktive").UsedRange.Rows.Count
FoundList.Clear
With Sheets("Aktive")
For z = 5 To zl
'Akt1 = .Cells(z, 29).Text ' Spalte Aktion 1
Nam = .Cells(z, 2).Text ' Zweite Spalte Kundenname
Kud = .Cells(z, 1).Text ' Erste Spalte Kundennummer
Akt1 = .Cells(z, 29).Text 'Name der Aktion Spalte anpassen
If Nam  "" Then
If InStr(1, Nam, SuchText, 1) > 0 Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
FoundList.List(FoundList.ListCount - 1, 2) = Akt1
End If
If InStr(1, Akt1, SuchText, 1) > 0 Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
FoundList.List(FoundList.ListCount - 1, 2) = Akt1
End If
If Kud  "" Then
If Len(SuchText) > 30 Then SuchText = Left(SuchText, 30)
If Left(Kud, Len(SuchText)) = SuchText Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
FoundList.List(FoundList.ListCount - 1, 2) = Akt1
End If
End If
End If
Next z
End With
End Sub

Frage ist aber, ob der Suchcode ggf. im Name der Aktion und der Nummer gleichzeitig vorkommen kann. Wenn ja, müsstest du den Code umstellen, weil sonst der Eintrag mehrfach erfasst wird. Die LIstbox vorher noch 3-spaltig einstellen.
VG
Anzeige
AW: Listbox Suche erweitern
27.08.2019 15:40:56
Julius
Hallo Matthias,
vielen Dank für deine Beispiel. Es funktioniert. Es listet mir alle Kunden mit dem ensprechenden Wert aus der Spalte 29 auf. Aber leider wird in der Listbox nur die KdNr. sowie der KdName angezeigt. Reicht es wenn ich quasi drei Listeneinträge erzeuge? So in der Art:
FoundList.List(FoundList.ListCount - 1, 1) = Kud
FoundList.List(FoundList.ListCount - 1, 2) = Nam
FoundList.List(FoundList.ListCount - 1, 3) = Akt1
Oder ist das Quatsch? :D
AW: Listbox Suche erweitern
27.08.2019 16:15:36
Matthias
Moin!
Du hast schon drei Listeinträge. :-) Schaue mal, ob du ggf. bei der Columnswidth der Listbox was stehen hast. Wenn da nur 2 Werte stehen, ist die dritte Spalte ausgeblendet. Dann für die dritte noch einen Wert eintragen.
Die Liste der Listbox ist ein Array, welches nullbasiert ist. Das heißt der erste Eintrag ist in Listbox.list(zeile,0). Das wird standardmäßig bei .add befüllt. Die zweite Spalte dann in .list(zeile,1).
Bei deinem Beispiel hättest du dann also 4 Spalten, da .list(,3) gilt und als zweite Parameter eine 3 steht.
VG
Anzeige
AW: Listbox Suche erweitern
28.08.2019 07:50:57
Julius
Hallo Matthias,
ich werde bekloppt. Ja das was! :D
Bei CloumnCount war der Wert 2 eingetragen. Nach dem ändern auf 3 hatte ich auch drei Spalten.
Die ColumnWitdth hab ich auch gleich angepasst.
Kann ich die Werte direkt beim aufrufen des Codes übergeben? Sowas wie .columncount = 3 usw? Das wäre doch sicher besser, als wenn ich das nur in den Eigenschaften ändere? Wenn jemand später in den Code schaut, dann weiß er gleich was Phase ist :)
Danke Dir.
AW: Listbox Suche erweitern
28.08.2019 10:33:07
Matthias
Moin!
Eigentlich tut das nicht Not. :-) Aber natürlich kannst du alle Einstellungen der Listbox (Spaltenbreiten und -anzahl usw.) auch zu Laufzeit im Code eintragen/festlegen. Aber wenn es vorher schon eingestellt ist, verhindert man Fehler, wenn jemand am Code was ändert. Alternativ kann man ja einen Kommentar im Code hinterlassen, aus welchem ersichthlich ist, dass die Listbox 3-spaltig ist.
VG
Anzeige
AW: Listbox Suche erweitern
28.08.2019 13:37:57
Julius
Hi, okay das klingt plausibel. :) Vielen Dank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige