Autofilter mit mehr als 3 variablen Kriterien anwenden
Schritt-für-Schritt-Anleitung
- Öffne deine Excel-Datei und gehe zur gewünschten Tabelle.
- Aktiviere den Autofilter für den entsprechenden Datenbereich. Zum Beispiel:
ActiveSheet.Range("$A$1:$C$67").AutoFilter Field:=3
- Erstelle ein Array für die Suchbegriffe. In diesem Beispiel sind die Begriffe „Gerät“, „Garantie“, „Kulanz“ und „Kostenvoranschlag“.
- Verwende das FilterArray um die gewünschten Kriterien zu filtern:
Dim arr
Dim txt As String
Dim x
For Each x In Range("C2:C67").Value
If x Like "*Gerät*" Or x Like "*Garantie*" Or x Like "*Kulanz*" Or x Like "*Kostenvoranschlag*" Then
txt = txt & "|" & x
End If
Next
arr = Split(Mid(txt, 2), "|")
ActiveSheet.Range("$A$1:$C$67").AutoFilter Field:=3, Criteria1:=arr, Operator:=xlFilterValues
Häufige Fehler und Lösungen
- Laufzeitfehler 1004: Dies kann passieren, wenn mehr als zwei Kriterien mit
Criteria1 und Criteria2 verwendet werden. Verwende stattdessen das FilterArray.
- Nicht alle relevanten Ergebnisse werden angezeigt: Stelle sicher, dass die Suchbegriffe im richtigen Format und an der richtigen Stelle im Code enthalten sind. Überprüfe auch, ob die Begriffe wirklich in den Zellen vorkommen.
Alternative Methoden
Eine alternative Methode zum Filtern könnte die Verwendung von VBA sein, um die Filterkriterien dynamisch zu erstellen. Hierbei kannst Du auch auf operator:=xlOr zurückgreifen, um mehrere Kriterien zu kombinieren.
Praktische Beispiele
Hier ist ein Beispiel, das zeigt, wie Du mehrere Kriterien in einem VBA-Skript kombinierst:
Sub AutofilterExample()
Dim arr
Dim txt As String
Dim x
For Each x In Range("C2:C67").Value
If x Like "*Gerät*" Or x Like "*Garantie*" Or x Like "*Kulanz*" Or x Like "*Kostenvoranschlag*" Then
txt = txt & "|" & x
End If
Next
arr = Split(Mid(txt, 2), "|")
ActiveSheet.Range("$A$1:$C$67").AutoFilter Field:=3, Criteria1:=arr, Operator:=xlFilterValues
End Sub
Tipps für Profis
- Nutze
operator:=xlFilterValues, um sicherzustellen, dass alle Werte im Filter korrekt verarbeitet werden.
- Erstelle benutzerdefinierte Funktionen zur Wiederverwendbarkeit des Codes.
- Achte darauf, dass du in deiner VBA-Umgebung die richtigen Referenzen gesetzt hast, um auf die Filterfunktionen zugreifen zu können.
FAQ: Häufige Fragen
1. Wie viele Kriterien kann ich mit Autofilter verwenden?
Mit dem FilterArray kannst Du beliebig viele Kriterien verwenden, während die Standardoption nur zwei zulässt.
2. Warum funktioniert mein Autofilter nicht?
Überprüfe, ob die Daten im korrekten Format vorliegen und dass Du die richtigen Operatoren verwendest. Achte auch darauf, dass der Autofilter auf den richtigen Datenbereich angewendet wird.
3. Gibt es eine Möglichkeit, das Ergebnis des Autofilters zu speichern?
Ja, Du kannst die gefilterten Daten in einen neuen Bereich kopieren oder in eine neue Tabelle exportieren, indem Du den SpecialCells-Befehl verwendest.
ActiveSheet.Range("$A$1:$C$67").SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Zielblatt").Range("A1")