Ich haben eine User-form mit einer Textbox um Einträge aus einem Worksheet anzuzeigen. In Spalte 1 wird nach den Werten ARB und MAT gesucht (Für Test im Moment einfach fest "ARB". Anschließend werden in der Spalte2 Einträge gesucht die in der Textbox eingegeben wurden. Mit Hilfe der SuFu konnte ich folgenden Code auf meine Bedürfnisse modifizieren. Funktioniert fast alles wunderbar, nur das like Statement macht mir Kopfschmerzen.
Wenn ich zum Beispiel den Eintrag "1234Hallo Welt" suche mit like "*Welt*", wird der Eintrag nicht gefunden. Wenn ich "Welt*" suche, dann wird der Eintrag gefunden, aber ich kann nicht mehr 1234 suchen. Gibts da ein einfache Lösung zu? Ist der Code überhaupt schlau zusammen gestellt, oder habe ich ein Grundsätzlichen Fehler gemacht? :) Bin blutiger Anfänger was VBA angeht.
Private Sub tbo_Suchen_Change()
Dim c As Range 'Suchresultat 1
Dim inic As String 'Initialer Treffer um schleife zu stoppen
Dim rowno As String 'Zeile
With Worksheets("ArtikelDB").Range("RangeRef")
Set c = .Find("ARB", , xlValues, xlWhole) ' Suchen1 in Spalte 4
uf_Artikelverwaltung.lbo_Suchresultate.Clear
If Not c Is Nothing Then
inic = c.Address 'Variable c in 1. Treffer
Do 'Do Loop Schleife Treffer bearbeiten.
'Suchen2 (textbox Eingabe) Spalte1
If c.Offset(0, -3).Value Like "*" & uf_Artikelverwaltung.tbo_Suchen & "*" Then
rowno = rowno & ";" & c.Row
'Listbox befüllen
With uf_Artikelverwaltung.lbo_Suchresultate
'Spaltenanzahl
.ColumnCount = 4
'.ColumnHeads = False
'Item hinzufügen
.AddItem
'Treffer (Link Customer)
.List(.ListCount - 1, 0) = c.Offset(0, -2).Value
.List(.ListCount - 1, 1) = c.Offset(0, 2).Value
.List(.ListCount - 1, 2) = c.Offset(0, 4).Value
.List(.ListCount - 1, 3) = (Format(Val(c.Offset(0, 5)), "#.#0"))
.ColumnWidths = "44 pt; 64 pt; 280 pt; 17 pt"
End With
End If
Set c = .FindNext(c) 'nächster Treffer
Loop While Not c Is Nothing And c.Address inic 'Loop bis erster Treffer kommt
End If
End With
'Anzahl Treffer in Label eintragen
lbl_treffer.Caption = lbo_Suchresultate.ListCount & " Treffer"
End Sub