Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Autofilter VBA "enthält"

Autofilter VBA "enthält"
11.06.2007 15:55:00
Markus
Hallo Zusammen,
ich versuche gerade eine Tabellen-Abfrage mittels Makro und Auto-Filter zu erstellen.
Mein Problem ist nun, wie bekomme ich es hin, daß ich meine zu filternden Personen z.B. aus TextBox1 oder TextBox2 (Userform) oder auch einem Zellbezug übernehmen kann. Filterkriterium ist "enthält"
Der Makrorekorder gab mir folgendes aus. Wie kriege ich das auf meine wünsche umgebuat?
Selection.AutoFilter Field:=5, Criteria1:="=*Max*", Operator:=xlOr, _
Criteria2:="=*Fritz*"
Kann mir hierbei jemand helfen?
Danke
Markus

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Autofilter VBA "enthält"
11.06.2007 16:01:00
Rudi
Hallo,
Selection.AutoFilter Field:=5, Criteria1:="=*" &textbox1 &"*", Operator:=xlOr, _
Criteria2:="=*" &Textbox2 &"*"
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Autofilter VBA "enthält"
12.06.2007 10:21:53
Markus
Hallo Rudi,
vielen Dank für deine perfekte Lösung. Funktioniiert prima.
Vielen Dank und Gruß
Markus
Anzeige
;

Forumthreads zu verwandten Themen

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

Autofilter mit VBA: So filtern Sie nach "enthält"


Schritt-für-Schritt-Anleitung

Um den Excel Autofilter mit VBA so anzupassen, dass er nach einem bestimmten Text sucht, der in einer TextBox oder einer Zelle steht, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "Modul".

  3. Gib den folgenden Code ein:

    Sub AutofilterNachEnthält()
        Dim textBox1 As String
        Dim textBox2 As String
    
        ' Beispielwerte für die TextBoxen
        textBox1 = "Max"
        textBox2 = "Fritz"
    
        ' Autofilter anwenden
        Selection.AutoFilter Field:=5, Criteria1:="=*" & textBox1 & "*", Operator:=xlOr, _
        Criteria2:="=*" & textBox2 & "*"
    End Sub
  4. Anpassen der TextBoxen: Ersetze die Werte von textBox1 und textBox2 durch die tatsächlichen Zellbezüge oder UserForm-TextBoxen.

  5. Führe das Makro aus: Klicke im VBA-Editor auf "Run" oder drücke F5.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Anwendung oder Objekt definieren"

    • Lösung: Stelle sicher, dass der Bereich, auf den Du AutoFilter anwendest, tatsächlich Daten enthält und dass das richtige Arbeitsblatt aktiv ist.
  • Fehler: Filter zeigt keine Ergebnisse an.

    • Lösung: Überprüfe die Werte in den TextBoxen. Stelle sicher, dass sie tatsächlich in den Daten vorhanden sind.

Alternative Methoden

Wenn Du nach einer anderen Möglichkeit suchst, um den Excel Autofilter zu verwenden, kannst Du auch die AutoFilter-Methode mit direkten Zellbezügen nutzen. Beispiel:

Sub AutofilterMitZellen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Tabelle1")

    Dim kriterium As String
    kriterium = ws.Range("A1").Value ' Zelle A1 als Kriterium

    ws.Range("A1:E100").AutoFilter Field:=2, Criteria1:="=*" & kriterium & "*"
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungen des Autofilter in VBA:

  1. Filtern nach einem bestimmten Namen:

    Selection.AutoFilter Field:=3, Criteria1:="=*Hans*"
  2. Filtern nach mehreren Kriterien:

    Selection.AutoFilter Field:=4, Criteria1:="=*Müller*", Operator:=xlOr, _
    Criteria2:="=*Schmidt*"
  3. Filtern mithilfe von Zellen:

    Dim filterKriterium As String
    filterKriterium = Range("B2").Value
    Selection.AutoFilter Field:=1, Criteria1:="=*" & filterKriterium & "*"

Tipps für Profis

  • Verwende die xlAnd- und xlOr-Operatoren richtig, um komplexe Filterkriterien zu erstellen.

  • Nutze den AutoFilterMode-Befehl, um sicherzustellen, dass der Autofilter vor dem Setzen neuer Kriterien deaktiviert wird:

    If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
  • Experimentiere mit verschiedenen Criteria1 und Criteria2, um die gewünschten Daten effizient zu filtern.


FAQ: Häufige Fragen

1. Wie kann ich den Autofilter in VBA zurücksetzen? Um den Autofilter zurückzusetzen, nutze:

If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False

2. Kann ich den Autofilter auf mehrere Spalten anwenden? Ja, Du kannst mehrere Selection.AutoFilter-Befehle in Serie ausführen, um verschiedene Spalten zu filtern.

3. Was ist der Unterschied zwischen Criteria1 und Criteria2? Criteria1 ist das Hauptkriterium, während Criteria2 ein alternatives Kriterium ist, das gemeinsam mit Operator verwendet wird (z.B. xlOr oder xlAnd).

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