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
).