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:
-
Öffne den VBA-Editor: Drücke ALT + F11 in Excel.
-
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "Modul".
-
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
-
Anpassen der TextBoxen: Ersetze die Werte von textBox1 und textBox2 durch die tatsächlichen Zellbezüge oder UserForm-TextBoxen.
-
Führe das Makro aus: Klicke im VBA-Editor auf "Run" oder drücke F5.
Häufige Fehler und Lösungen
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:
-
Filtern nach einem bestimmten Namen:
Selection.AutoFilter Field:=3, Criteria1:="=*Hans*"
-
Filtern nach mehreren Kriterien:
Selection.AutoFilter Field:=4, Criteria1:="=*Müller*", Operator:=xlOr, _
Criteria2:="=*Schmidt*"
-
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).