ich habe eine mehrspaltige Listbox mit über 1700 Zeile welche ich gern Filtern möchte dass ich eine Zeile markieren kann.
aufgrund der Menge an Zeilen (und es werden mehr) dauert die normale Suche sehr lange, deswegen habe ich mir eine "Array" Code gesucht.
Leider schaffe ich es mit meinen einfachen VBA Kenntnissen nicht eine zweite Spalte einzufügen, sodass ich über die Textbox1 in allen Spalten suchen kann um die entsprechende Spalte in der Listbox zu markieren und dann später zu übertragen.
Könnte mit jemand bitte helfen?
Option Explicit
Private arrData As Variant
Private Sub UserForm_Initialize()
Dim lLastRow As Long
With Worksheets("Alle HFs im Überblick")
lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
arrData = .Range(.Cells(4, 1), .Cells(lLastRow, 2)).Value
End With
With ListBox1
.ColumnCount = 2
.ColumnWidths = "3cm;8cm"
.List = arrData
.ListIndex = .ListCount - 1
End With
End Sub
Private Sub TextBox1_Change()
Dim zeile As Long
Me.ListBox1.Clear
Me.ListBox1.List = arrData
For zeile = Me.ListBox1.ListCount - 1 To 0 Step -1
If Not UCase(Me.ListBox1.List(zeile)) Like UCase(Me.TextBox1) & "*" Then Me.ListBox1.RemoveItem (zeile)
Next
End Sub