Herbers Excel-Forum - das Archiv

Suche mit Sternchen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ListBox TextBox
Bild

Betrifft: Suche mit Sternchen
von: otto

Geschrieben am: 03.01.2007 15:34:45
Hallo Forum,
allen alles Gute im neuen Jahr.
Ich lasse mir in einer Listbox alle Übereinstimmungen mit TextBox1 auflisten.
Gebe ich z.B bf... ein erscheinen alle Einträge die mit bf beginnen.
Nun möchte ich erreichen, dass auch Einträge aufgelistet werden die den Inhalt von Textbox1 irgendwo enthalten.
Z.B. soll bei Eingabe von 503 auch angezeigt werden: BR20-1.0503
Z.B. soll bei Eingabe von r20 alle Einträge angezeigt werden, die die Zeichenfolge r20 enthalten (z.B. BR20-1.0122, WR20-1.7227)
Welche Zeile muss ich wie ändern?
Private Sub TextBox1_Change()
Dim arr() As Variant, Tmp As Variant, wks As Worksheet, zelle
Dim index As Integer
Dim X, iCount
zelle = Cells(12, 4)
Set wks = Sheets("Stamm")
X = wks.Range("V65536").End(xlUp).Row
Tmp = wks.Range("V4:CH" & 4 + X)
X = X - 4
If TextBox1 = "" Then
On Error GoTo weiter
ReDim arr(0 To 2, 0 To X - 1)
For index = 1 To UBound(Tmp, 1)
arr(0, iCount) = Tmp(index, 4)
arr(1, iCount) = Tmp(index, 65)
arr(2, iCount) = Tmp(index, 1)
Next
weiter:
arr = WorksheetFunction.Transpose(arr)
ListBox1.List = arr
Else
For index = 1 To UBound(Tmp, 1)
If LCase(Left(Tmp(index, 4), Len(TextBox1))) = LCase(TextBox1) Then
ReDim Preserve arr(0 To 2, 0 To iCount)
arr(0, iCount) = Tmp(index, 4)
arr(1, iCount) = Tmp(index, 65)
arr(2, iCount) = Tmp(index, 1)
iCount = iCount + 1
End If
Next
End If
If iCount <> 0 Then
ListBox1.Column = arr
End If
End Sub

Gruß
otto
Bild

Betrifft: AW: Suche mit Sternchen
von: Hubert
Geschrieben am: 03.01.2007 15:41:35
Hi,
verwende statt = den Like-Operator(case sensitve).
mfg Hubert
Bild

Betrifft: AW: Suche mit Sternchen
von: Peter Feustel
Geschrieben am: 03.01.2007 17:47:02
hallo Otto,
du könntest doch mit InStr suchen meine ich.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Bild

Betrifft: AW: Suche mit Sternchen
von: otto
Geschrieben am: 04.01.2007 11:23:32
Hi,
und wie geht das genau? So gut sind meine VBA Kenntnisse nun doch nicht.
otto
Bild

Betrifft: AW: Suche mit Sternchen
von: Peter Feustel

Geschrieben am: 05.01.2007 10:43:46
Hallo Otto,
anstelle von
If LCase(Left(Tmp(index, 4), Len(TextBox1))) = LCase(TextBox1) Then
If InStr(Tmp(index, 4), TextBox1.value) GRÖSSER 0 Then
MsgBox "gefunden"
else
MsgBox "NICHT vorhanden"
EndIf
Anstelle GRÖSSER musst du natürlich das Größer-Zeichen setzen, das lässt sich hier nur nicht darstellen.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Bild

Betrifft: AW: Suche mit Sternchen
von: otto
Geschrieben am: 05.01.2007 10:51:52
Hallo Peter,
läuft nicht so wie gedacht, habe aber eine andere Lösung gefunden.
Danke
Gruß
otto
 Bild