Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: inhalt Listbox nach Auswahl von Textbox suchen

inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 07:02:15
Textbox
Hallo Guten Morgen Forumer,
ich habe auf einer Userform eine Listbox und eine Textbox. Ich will wenn ich in die Textbox ein Wort eingebe, dass er mir die Listbox durchsucht. Gibt es eine Möglichkeit dazu?
Danke

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 08:13:48
Textbox
Hi,
wie weist du der ListBox die Daten zu - mittels AddItem oder über RowSource?


AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 08:25:05
Textbox
Hallo Karin,
ich will über die Row Source gehen

AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 08:42:46
Textbox
Hi,
Private Sub TextBox1_Change()
Dim rngZelle As Range
Dim lngIndex As Long
Set rngZelle = Range(ListBox1.RowSource).Find(TextBox1.Value, lookat:=xlWhole)
If Not rngZelle Is Nothing Then
lngIndex = rngZelle.Row - Range(ListBox1.RowSource).Cells(1).Row
ListBox1.Selected(lngIndex) = True
End If
Set rngZelle = Nothing
End Sub


Anzeige
AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 08:48:59
Textbox
Hallo erstmal vielen Dank, geht.
kann man es so machen das wenn ich die Textbox z. B. Netto eingebe das alles Netto erscheint oder Lidl das alles Lidl erscheint?
Danke

AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 09:00:15
Textbox
Hi,
in dem Fall kannst du RowSource nicht verwenden sondern musst in einer Schleife (z.B. mittels FindNext-Methode) über alle Zeilen/Einträge im Tabellenblatt laufen und den relevanten Datensatz per AddItem in die ListBox laden.


Anzeige
AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 09:15:50
Textbox
Private Sub CommandButton1_Click()
'Neuen Datensatz anlegen
Dim letzte_Zeile As Long
With Worksheets = ComboBox1 "bekomme an dieser stelle eine Fehlermeldung. Ich beziehe mich auf die CB da ich verschiedene Jahre habe und ich es über eine Combobox zuordnen möchte.
'Die letzte beschrieben Zeile in Spalte A ermitteln
letzte_Zeile = .Range("A65536").End(xlUp).Offset(1, 0).Row
.Cells(letzte_Zeile, 1) = TextBox2.Text 'lfd nr. der Rechnung

Anzeige
With Worksheets(ComboBox1.Value) - o.w.T.
05.01.2016 09:57:22
Beverly


AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 09:16:29
Textbox
Wie muss ich dann den Code umwandeln damit es geht?
Danke Karin

AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 10:14:55
Textbox
Hi,
Private Sub TextBox1_Change()
Dim rngZelle As Range
Dim strStart As String
' Suchspalte anpassen
Set rngZelle = Columns(2).Find(TextBox1.Value, lookat:=xlWhole)
If Not rngZelle Is Nothing Then
strStart = rngZelle.Address
ListBox1.Clear
Do
' 1. Spalte der ListBox füllen (Spalte 0)
ListBox1.AddItem rngZelle.Value
' 2. Spalte der ListBox füllen (Spalte 1)
ListBox1.List(ListBox1.ListCount - 1, 1) = rngZelle.Offset(0, 1)
'... usw., maximal 10 Spalten möglich (also bis einschließlich , 9)
Set rngZelle = Columns(2).FindNext(rngZelle)
Loop While rngZelle.Address  strStart
End If
Set rngZelle = Nothing
End Sub


Anzeige
AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 11:04:12
Textbox

Private Sub CommandButton3_Click()
'Variable deklarieren
Dim erste_freie_Zeile As Integer
'Zwischengespeicherte Datensatz-ZeilenZahl
'in Variable "erste_freie_Zeile" schreiben
If TextBox2.Tag = "" Then Exit Sub
erste_freie_Zeile = CLng(TextBox2.Tag)
'Spalte A, erste freie Zeile das Datum im Datumsformat übertragen
Activesheets.Cells(erste_freie_Zeile, 2) = VBA.Format(ComboBox2.Text)
TextBox2.Tag = ""
MsgBox "Die Daten wurden aktuallisiert", vbInformation
Unload Me
End Sub
was ist daran falsch?
Ich will die Daten in der Zeile ändern macht er aber nicht. Es muss bei Sheets wieder das Blatt ausgewählt werden welches in der CB1 angezeigt wird.
Danke

Anzeige
AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 11:13:32
Textbox
Wenn du dich auf ein bestimmtes Tabellenblatt beziehen willst, dann so:
Worksheets(ComboBox1.Value).Cells(erste_freie_Zeile, 2)

Aber das hatte ich schon im Betreff meines Beitrag von 09:57:22 geschrieben...


Anzeige
AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 11:06:33
Textbox
bekomme folgende Fehlermeldung bei
ListBox1.Clear
nicht näher bezeichneter Fehler ?

AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 11:14:55
Textbox
Vielleicht heißt sie nicht ListBox1?


AW: inhalt Listbox nach Auswahl von Textbox suchen
05.01.2016 11:25:44
Textbox
Hallo,
sie heißt ListBox1.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Inhalte einer Listbox nach Auswahl einer Textbox suchen


Schritt-für-Schritt-Anleitung

  1. Erstelle eine Userform mit einer Listbox (ListBox1) und einer Textbox (TextBox1).
  2. Füge den folgenden VBA-Code in das Code-Modul der Userform ein:
Private Sub TextBox1_Change()
    Dim rngZelle As Range
    Dim strStart As String
    ' Suchspalte anpassen
    Set rngZelle = Columns(2).Find(TextBox1.Value, lookat:=xlWhole)
    If Not rngZelle Is Nothing Then
        strStart = rngZelle.Address
        ListBox1.Clear
        Do
            ' 1. Spalte der ListBox füllen (Spalte 0)
            ListBox1.AddItem rngZelle.Value
            ' 2. Spalte der ListBox füllen (Spalte 1)
            ListBox1.List(ListBox1.ListCount - 1, 1) = rngZelle.Offset(0, 1)
            Set rngZelle = Columns(2).FindNext(rngZelle)
        Loop While rngZelle.Address <> strStart
    End If
    Set rngZelle = Nothing
End Sub
  1. Teste die Funktionalität, indem du ein Wort in die Textbox eingibst. Die Listbox sollte sich entsprechend aktualisieren.

Häufige Fehler und Lösungen

  • Fehler: "nicht näher bezeichneter Fehler" bei ListBox1.Clear

    • Lösung: Überprüfe, ob die Listbox tatsächlich ListBox1 heißt. Es könnte sein, dass der Name anders lautet.
  • Fehler: Textbox gibt keine Ergebnisse zurück

    • Lösung: Stelle sicher, dass die Daten in der entsprechenden Spalte vorhanden sind und die Suchparameter korrekt gesetzt sind.
  • Fehler bei der Verwendung von RowSource

    • Lösung: Wenn du nach mehreren Einträgen suchen möchtest (z.B. alle "Netto"), musst du auf die Schleife und AddItem zurückgreifen, anstatt RowSource zu verwenden.

Alternative Methoden

Wenn du eine andere Methode zur Befüllung der Listbox in Betracht ziehst, kannst du die Find- und FindNext-Methoden in Kombination mit einer Schleife verwenden, um alle passenden Einträge zu finden und diese in die Listbox zu laden. Dies ist besonders nützlich, wenn du nicht nur nach einem exakten Treffer suchst, sondern nach Teilstrings.


Praktische Beispiele

  • Beispiel 1: Suche nach einem spezifischen Begriff

    • Wenn du "Lidl" in die Textbox eingibst, wird die Listbox alle Einträge, die "Lidl" enthalten, anzeigen.
  • Beispiel 2: Suche nach mehreren Wörtern

    • Passe den Code so an, dass die Listbox alle Einträge anzeigt, die mit dem Text in der Textbox beginnen oder enden.
If InStr(1, rngZelle.Value, TextBox1.Value, vbTextCompare) > 0 Then
    ' Eintrag hinzufügen
End If

Tipps für Profis

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Nutze Application.ScreenUpdating = False am Anfang und Application.ScreenUpdating = True am Ende deines Codes, um die Leistung zu verbessern, besonders bei umfangreichen Daten.
  • Experimentiere mit Filterfunktionen in Excel, um die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die Suchfunktion auf mehrere Spalten ausweiten? Du kannst die Find-Methode in einer Schleife für jede Spalte aufrufen, die du durchsuchen möchtest.

2. Was tun, wenn die Listbox nicht alle Einträge anzeigt? Überprüfe den Code und stelle sicher, dass die Schleife korrekt konfiguriert ist, um alle passenden Einträge zu erfassen. Achte auch darauf, dass die Daten in der Suchspalte vorhanden sind.

3. Kann ich die Listbox so einstellen, dass sie mehrere Auswahlmöglichkeiten zulässt? Ja, setze die MultiSelect-Eigenschaft der Listbox auf fmMultiSelectMulti, um mehrere Auswahlen zu ermöglichen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige