Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1820to1824
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit Textbox suchen

Mit Textbox suchen
17.03.2021 09:33:20
oraculix
Hallo
Ich möchte gerne über Eingabe in Textbox3 in der Iistbox1 Suchen
Die Daten kommen aus Spalte A;B Tabelle FilmDB. in die Listbox1
Leider kann ich die Mappe nicht hochladen weil sie zu groß ist.
Frage : wie Suche ich in Textbox und zeige das ergebniss in Listbox an?

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Textbox suchen
17.03.2021 09:42:18
ralf_b
im textbox_change Ereignis
durch die Listboxdaten mittel Code-Schleife und die Werte entsprechend vergleichen.
Entweder du entfernst die nicht zutreffenden Listboxzeilen oder du ersetzt die ganze Liste mit einem Array aus den Suchergebnissen.
gruß
rb

AW: Mit Textbox suchen
17.03.2021 09:47:15
oraculix
Danke für die rasche Antwort
Habe was gelesen von Textbox Change Ereigniß aber wie bin ja vba Anfänger hast ein Makro?

habe keinen fertigen Code dafür .....
17.03.2021 09:59:44
ralf_b
Wenn du nicht weis was diese Ereignisse sind, dann eigne dir dieses Wissen an. Du hast schon einige Threads hier. Darin sind auch diverse Codes. Auch für Events. Man sollte denken du beschäftigst dich mit dem Thema.
gruß
rb

Anzeige
AW: habe keinen fertigen Code dafür .....
17.03.2021 10:11:26
oraculix
ich habe einen code gefunden aber der gibt immer eine msgbox aus wie kann ich das ändern das er mir nur die treffer zeigt in listbox?
Private Sub CommandButton8_Click()
Dim feld() As String, index1 As Integer, index2 As Integer, index3 As Integer, gefunden As  _
Boolean
If Len(TextBox3) > 2 Then
For index1 = Len(TextBox3) To 3 Step -1
For index2 = 1 To Len(TextBox1) - index1 + 1
index3 = index3 + 1
ReDim Preserve feld(1 To index3)
feld(index3) = Mid(TextBox3, index2, index1)
Next
Next
For index1 = 1 To UBound(feld)
For index2 = 0 To ListBox1.ColumnCount - 1
For index3 = 0 To ListBox1.ListCount - 1
If InStr(1, LCase(ListBox1.List(index3, index2)), LCase(feld(index1))) > 0  _
Then
ListBox1.Selected(index3) = True
gefunden = True
If MsgBox("Weitersuchen.", 36, "Frage") = 7 Then Exit Sub
End If
Next
Next
Next
If Not gefunden Then MsgBox "Suchbegriff nicht gefunden.", 64, "Information" Else  _
MsgBox "Keine weitere Übereinstimmung gefunden", 64, "Information"
Else
MsgBox "Suchbegriff muss mindestens dreistellig sein.", 48, "Hinweis"
End If
End Sub

Private Sub UserForm_Activate()
TextBox1.SetFocus
End Sub


Anzeige
AW: Mit Textbox suchen
17.03.2021 10:13:36
Rudi
Hallo,
Die Daten kommen aus Spalte A;B Tabelle FilmDB.
dann such doch da.
Gruß
Rudi

AW: Mit Textbox suchen
17.03.2021 10:21:23
oraculix
Wenn ich wüsste wie das geht müsste ich aber hier nicht fragen

AW: Mit Textbox suchen
17.03.2021 10:30:36
Rudi
Hallo,
sowas?
Private Sub TextBox1_Change()
Dim vArr, i As Long
Dim strMatch As String
strMatch = "*" & LCase(TextBox1) & "*"
vArr = ListBox1.List
For i = 0 To UBound(vArr)
ListBox1.Selected(i) = (LCase(vArr(i, 0)) Like strMatch Or LCase(vArr(i, 1)) Like strMatch)  _
And strMatch  "**"
Next
End Sub

Gruß
Rudi

AW: Mit Textbox suchen
17.03.2021 10:44:44
oraculix
Danke erst mal aber
ich möchte das die listbox1 nur alle treffer anzeigt alles andere sollte gelöscht werden

Anzeige
Recherche: Listbox filtern. owT
17.03.2021 11:11:37
Rudi

AW: Recherche: Listbox filtern. owT
17.03.2021 11:28:17
oraculix
Ich versuche es nochmal zu beschreiben
Nach eingabe in Texbox3 sollen alle gefundenen Werte in listbox1 gelistet werden.
Alle einträge die nicht gesucht werden sollen aus der listbox1 gelöscht werden.
Also bleiben in Listbox1 nur die Suchtreffer über.

das ist mir klar.
17.03.2021 11:51:41
Rudi
im Archiv gibt es etliche Lösungen.
Gruß
Rudi

AW: das ist mir klar.
17.03.2021 11:56:44
oraculix
Habe ich schon durchsucht finde aber nicht hast du wenigstens einen Link?

Beispielcode
17.03.2021 13:40:02
Rudi

Private Sub TextBox1_Change()
Dim vntARR, i As Long
Dim strMatch As String
Dim objList As Object
strMatch = "*" & LCase(TextBox1) & "*"
Set objList = CreateObject("scripting.dictionary")
vntARR = Sheets(1).Cells(1, 1).CurrentRegion
For i = 1 To UBound(vntARR)
If (LCase(vntARR(i, 1)) Like strMatch Or LCase(vntARR(i, 2)) Like strMatch) Then
objList(i) = Array(vntARR(i, 1), vntARR(i, 2))
End If
Next i
ListBox1.Clear
If objList.Count Then
If objList.Count > 1 Then
vntARR = Application.Transpose(Application.Transpose(objList.items))
ListBox1.List = vntARR
Else
vntARR = objList.items
ListBox1.AddItem vntARR(0)(0)
ListBox1.List(0, 1) = vntARR(0)(1)
End If
End If
Set objList = Nothing
End Sub
Gruß
Rudi

Anzeige
AW: Beispielcode
17.03.2021 16:21:50
oraculix
Danke sieht gut aus der Code.
Aber da ist ein Fehler der mir Angezeigt wird
ListBox1.Clear wird Gelb angezeigt.
Anscheinend kann er die Listbox1 nicht löschen
Hier der Eintrag der die Listbox1 füllt
'Tabelle FilmDB Spalte A und B in Listbox1 anzeigen
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "6cm;6cm"
.ColumnHeads = False
ListBox1.RowSource = "FilmDB!A2:B3000"
ListBox1.ListIndex = ListBox1.ListCount - 2900
End With
End Sub


AW: Beispielcode
17.03.2021 18:41:07
ralf_b
das liegt vermutlich an der .Rowsource.
entweder du nutzt rowsource um die Werte der Listbox mit den Tabelleninhalten zu "verknüpfen".
Dann mußt du die Tabellenwerte in der Tabelle bearbeiten und die Änderung wird in der Listbox sichtbar.
Oder du nutzt .List und fügst den Inhalt eines Datenbereiches in die Listbox ein. dann ändert sich nichts an den Tabellenwerten, weil nicht miteinander verknüpft.
.Clear geht dann nur bei Nutzung von .List.

Anzeige
AW: Beispielcode
18.03.2021 10:10:14
Rudi
Hallo,
du darfst .RowSource nicht setzen.
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "6cm;6cm"
.ColumnHeads = False
.List = Worksheets("FilmDB").Range("A2:B3000").Value
.ListIndex = .ListCount - 2900
End With
End Sub

Gruß
Rudi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige