ich habe eine Listbox mit Multiselect und möchte mithilfe der Textbox entweder per Suche (entweder manuelle Eingabe + Enter oder Barcodescanner) einen Eintrag direkt im Multiselect markieren. Derzeit springt die Suche zur jeweiligen Zeile, markiert mir den Eintrag aber nicht, das Setzen des Häkchens muss ich noch manuell machen.
Es soll am besten so ablaufen, dass ich z.B. 5 Barcodes hintereinander Scanne und in der Listbox die 5 richtigen Einträge markiert werden.
Hat jemand mit mehr VBA Kenntnissen eine Idee? Vielen Dank im Voraus!
Mein Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Suchfunktion nach Barcode auf Enter in TextBox1
Dim StrSuch As String, firstadr As String, weiter%, sucher As Variant
If KeyCode = 13 Then
'Suche durchführen auf Enter:
StrSuch = TextBox1.Text
If StrSuch "" Then
With Sheets("Bestandsliste").Range("b5:b6000") 'Adresse der Listbox
Set sucher = .Find(what:=StrSuch, Lookat:=xlPart)
If Not sucher Is Nothing Then
firstadr = sucher.Address
ListBox1.ListIndex = sucher.Row - 5
TextBox1.Value = CStr("Barcode scannen") 'Zurück zur Textbox1 um erneut zu Scannen
TextBox1.SetFocus
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1)
Do
Set sucher = .FindNext(sucher)
ListBox1.ListIndex = sucher.Row - 5
Loop While Not sucher Is Nothing And sucher.Address firstadr
TextBox1.Value = CStr("Barcode scannen") 'Zurück zur Textbox1 um erneut zu Scannen
TextBox1.SetFocus
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1)
End If
End With
End If
End If
End Sub