ich habe bislang eine Userform mit diversen TextBox'n und ComboBox'n, welche nur zum Daten anlegen und verändern sind. Desweiteren kann man über eine ListBox1 einen Datensatz auswählen und löschen.
Nun soll eine Freifeldsuche eingefügt werden, welche die gesamte Tabelle1 nach dem Text aus TextBox14 durchsucht und die Treffer in ListBox1 ausgibt. Die Suche soll immer aktualisiert werden wenn etwas in TextBox14 geändert wird. Dafür habe ich folgenden Code ins Change-Event gepackt.
Private Sub TextBox14_Change()
Dim i As Integer, ii As Integer
Dim vntList, strTxt As String, arrSelected()
If TextBox14 = "" Then
ListBox1.ListIndex = 0
Else
strTxt = LCase(TextBox14)
vntList = ListBox1.List
ReDim arrSelected(ListBox1.ListCount - 1)
For i = 0 To ListBox1.ListCount - 1
For ii = 0 To ListBox1.ColumnCount - 1
arrSelected(i) = InStr(LCase(vntList(i, ii)), strTxt) > 0
If arrSelected(i) Then Exit For
Next
Next
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = arrSelected(i)
Next
End With
End If
End Sub
Nun wird allerdings nur ein Wert "gefunden" (wohl immer der Letzte im Bezug auf den ListIndex) und lediglich in der gesamten ListBox markiert.Wie kann ich denn nun die ListBox1 "live" aktualisieren mit allen Treffern wo der Suchbegriff enthalten ist?
Eine Beispieldatei ist hier zufinden:
https://www.herber.de/bbs/user/116122.xlsm
Vielen Dank im Vorwege
Dennis