Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1468to1472
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

Dynamische Suchausgabe in Listbox

Dynamische Suchausgabe in Listbox
20.01.2016 14:55:33
Alex
Hallo,
ich habe mir eine Userform angelegt, in dem ich ein Suchfeld (TextBox2) habe und eine Listbox, welche mir dynamisch die Suchergebnisse anzeigt, falls er Suchergebnisse findet. Die Suchbegriffe stehen in Spalte B wie z.B.:
Klärung Art der Zertifizierung
Zertifizierung Standort

Mein Problem:
Durch If UCase(Left zeigt er mir ja immer nur die Suchbegriffe an, wenn das Wort auch ganz links in einer Zelle steht. z.B. Klärung Art der Zertifizierung würde gar nicht auftauchen in meiner Listbox.
Ich habe schon etwas mit If UCase(right experimentiert, aber für Fälle, wo die Suchbegriffe in der Mitte stehen, fällt die Lösung raus.
Wie kann ich realisieren, dass er alle Ergebnisse anzeigt, auch wenn das Suchwort nicht ganz rechts oder links steht?
Verwendeter Code:
Private Sub TextBox2_Change()
Application.ScreenUpdating = False
ListBox1.Clear
If TextBox2 = "" Or TextBox2 = " " Then Exit Sub
Dim rng As Range
Dim sAddress As String
Set rng = Sheets("qm").Cells.Find(what:=TextBox2.Text, after:=ActiveCell, LookIn:= _
xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.Goto rng, True
If UCase(Left(rng, Len(TextBox2))) = UCase(TextBox2) Then ListBox1.AddItem  _
ActiveCell.Text
Set rng = Cells.FindNext(after:=ActiveCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
Set rng = Nothing
Application.ScreenUpdating = True
End Sub
Danke für die Hilfe!
VG Alex

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamische Suchausgabe in Listbox
20.01.2016 15:20:58
Rudi
Hallo,
dann lass die Prüfung doch weg. Ist doch alles in der Find-Methode definiert.
Und das GoTo kannst du auch vergessen.
        If Not rng Is Nothing Then
sAddress = rng.Address
Do
ListBox1.AddItem rng.Text
Set rng = Cells.FindNext(after:=rng)
Loop Until rng.Address = sAddress
End If

Gruß
Rudi

AW: Dynamische Suchausgabe in Listbox
21.01.2016 09:38:40
Alex
Hallo Rudi,
danke Dir, da hatte ich wohl einen Hänger und bin gar nicht auf die einfache Idee gekommen.
Mein Problem ist jetzt aber, dass sich die Userform "aufhängt", wenn z.B. 200 Einträge vorhanden sind und man "a" ins Suchfeld tippt. Hast du/irgendjemand zufällig einen fertigen Code, dass mit der Suche z.B. erst begonnen wird, wenn 3 Buchstaben eingegeben wurden?
Danke!!!
Gruß Alex

Anzeige
AW: Dynamische Suchausgabe in Listbox
21.01.2016 12:49:20
Rudi
Hallo,
anstatt
If TextBox2 = "" Or TextBox2 = " " Then Exit Sub
If len(trim(textbox2)) &lt 3 then Exit Sub
Das doktort aber nur an den Symptomen rum.
Im Archiv gibt es schnelle Beispiele.
Gruß
Rudi

AW: Dynamische Suchausgabe in Listbox
21.01.2016 14:34:51
Alex
Hallo Rudi,
Danke :) Habs minimal noch abgeändert, aber passt so wunderbar :)
LG Alex

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige