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

Forumthread: Filtern mit VBA und Textfeld

Filtern mit VBA und Textfeld
21.09.2016 17:03:01
Philipp
Hallo zusammen,
in eine Kollegenliste habe ich mir eine Suche/Filter per VBA und TextBox gebaut (siehe Beispieldatei unten). Das funktioniert soweit ganz gut, allerdings muss ich immer den kompletten Namen eingeben.
Es gibt doch sicher eine Möglichkeit, dass der Filter alles anzeigt, was die Textphrase enthält. Wenn ich bspw. nach Alexander filtern will, soll er mir auch dann die Zeile 11 anzeigen, wenn nur "Alex" in der Textbox3 (Zelle A8) steht.
Könnt ihr mir weiterhelfen?
Vielen Dank!
Beispieldatei:
https://www.herber.de/bbs/user/108323.xlsm
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filtern mit VBA und Textfeld
21.09.2016 17:32:51
Bastian
Hey Ho einfach das Criteria1:="*" & TextBox2 & "*"
Gruß Basti
AW: Filtern mit VBA und Textfeld
21.09.2016 19:31:53
Philipp
Hallo Basti,
vielen Dank! Manchmal sieht man den Wald vor lauter Bäumen nicht ;-)
Funktioniert einwandfrei.
VG Philipp
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Filtern mit VBA und Textfeld in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und gehe zum VBA-Editor, indem du ALT + F11 drückst.

  2. Füge ein Textfeld (TextBox) auf deinem Arbeitsblatt hinzu. Das kannst du über die Entwicklertools tun.

  3. Erstelle ein VBA-Makro, das den Filter auf die Liste anwendet. Hier ist ein einfaches Beispiel:

    Sub FilterMitTextBox()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Sheets("DeinSheetName")
    
        ' Setze den Autofilter
        ws.ListObjects("DeineTabelle").Range.AutoFilter Field:=1, Criteria1:="*" & TextBox2.Text & "*"
    End Sub
  4. Ändere den Field Parameter entsprechend der Spalte, die du filtern möchtest.

  5. Testen: Gib einen Teil des Namens in das Textfeld ein. Wenn du z.B. "Alex" eingibst, sollten alle Zeilen angezeigt werden, die "Alex" oder "Alexander" enthalten.


Häufige Fehler und Lösungen

  • Fehler: Filter zeigt nichts an

    • Lösung: Stelle sicher, dass das Textfeld korrekt benannt ist und die Criteria1 richtig gesetzt ist. Überprüfe auch, ob das Autofilter-Symbol aktiviert ist.
  • Fehler: VBA-Code läuft nicht

    • Lösung: Prüfe, ob Makros in deiner Excel-Datei aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter und aktiviere die Makros.

Alternative Methoden

  • Du kannst auch die Eingabefelder in einer Formularsteuerelement verwenden, um die Filterung zu erleichtern.
  • Datenüberprüfung: Verwende die Datenüberprüfung, um eine Dropdown-Liste zu erstellen, die die Eingaben erleichtert.

Praktische Beispiele

Ein einfaches Beispiel zur Implementierung:

  1. Erstelle eine Tabelle mit Namen in Spalte A.
  2. Füge ein Textfeld (TextBox) hinzu.
  3. Verwende den oben genannten VBA-Code, um die Filterung zu aktivieren.

Wenn du z.B. "Max" in das Textfeld eingibst, wird jede Zeile angezeigt, die "Max" enthält, wie "Maximilian" oder "Maxine".


Tipps für Profis

  • Verwende Wildcards: Achte darauf, dass du mit * und ? arbeitest, um die Suchergebnisse zu erweitern und flexibler zu gestalten.
  • Dynamische Filterung: Du kannst den Filter auch automatisch anwenden, während du tippst, indem du das Change-Ereignis der TextBox verwendest.

    Private Sub TextBox2_Change()
        Call FilterMitTextBox
    End Sub

FAQ: Häufige Fragen

1. Wie kann ich mehrere Kriterien hinzufügen? Du kannst weitere Criteria in der Methode AutoFilter hinzufügen, indem du sie mit Criteria1 und Criteria2 kombinierst.

2. Funktioniert das auch in Excel Online? Leider ist VBA nicht in Excel Online verfügbar. Du musst die Desktop-Version von Excel verwenden, um VBA-Filterung zu nutzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige