ich bin gerade beim Schreiben von einem UserForm basiertem Lager-System.
Jetzt habe ich alles fertig bis auf dieses Listbox-Objekt.
Ich wollte hier ein Textbox haben wo ich z.B. typen kann, sodass da eine automatische suche stattfindet und liefert mir nur diese Ergebnisse, die den gesuchten Text/Teil von dem Text behalten. Jedes Mal wenn ich etwas in diesem Texbox ändere, ändert sich meine Trefferliste in Listbox. Dieses Macro funktioniert perfekt.
z.B. "Ca"
Calcium
Carbon
Steel-Cal Set
Es funktionier nur mit einer Spalte. Sobald ich versuch mit noch weitere Spalten zu holen, bekomme ich es nicht richtig zugewiesen. z.B für Calcium bekomme ich eine falsche Nummer und die Suche selbst scheint nicht mehr alle Treffer zu finden...
Für jeden Treffer mit Such-Macro brauche ich z.B aus anderer Spalte, aber der gleichen Zeile Ergebnis und so für jeden Treffer
Mein Macro für eine Spalte:
Private Sub ListName_Change()
Dim i As Long
Dim arrList As Variant
'ListAvaillabe ist mein Listbox
'ListName ist mein Textbox
ListAvaillabe.Clear
'hier muss angepasst werden, falls Anzahl von Spalten größer wird
ListAvaillabe.ColumnCount = 1
'E1G ist meine Tabelle mit den Daten; Die Daten nach welchen gesucht wird sind in Spalte C in _
meiner Datei
If E1G.Range("C" & E1G.Rows.Count).End(xlUp).row > 1 And Trim(Me.ListName.Value) _
vbNullString Then
arrList = E1G.Range("C2:C" & E1G.Range("C" & E1G.Rows.Count).End(xlUp).row).Value2
For i = LBound(arrList) To UBound(arrList)
If InStr(1, arrList(i, 1), Trim(Me.ListName.Value), vbTextCompare) Then
Me.ListAvaillabe.AddItem arrList(i, 1)
'hier muss ich etwas zusätzlich schreiben, um weitere Daten aus Spalten zu finden
End If
Next i
End If
If Me.ListAvaillabe.ListCount = 1 Then Me.ListAvaillabe.Selected(0) = True
End Sub