Autofilter mit mehreren Kriterien

Ab Excel 2007 können in einem Filter beliebige Filterkriterien manuell vorgegeben werden, indem die gewünschten Werte im Filterdialog an- oder abgehakt werden. Als Ausgangsbasis dient eine kleine Liste mit Werten und Texten, siehe Abbildung 1.


Abbildung 1

In dieser Liste sollen nun die Werte a, b und g manuell gefiltert werden. Um diese Werte zu filtern, müssen die unerwünschten Einträge einfach abgehakt werden. Die Filtereinstellungen sehen Sie in Abbildung 2.


Abbildung 2

Damit werden in diesem Beispiel wunschgemäß nur die Werte a, b und g aus der Liste gefiltert werden. Die Werte c, d, e und f sollen hingegen ausgeblendet werden. Das Ergebnis sehen Sie in Abbildung 3.


Abbildung 3

Soweit so gut. Manuell lässt sich der Autofilter also ohne große Schwierigkeiten bedienen.

Aber auch per VBA kann der Autofilter gesteuer werden. Das folgende Makro zeigt, wie sich die Filterkriterien per VBA entsprechend anpassen lassen, so dass der manuelle Filtervorgang automatisiert werden kann.

{codecitation}

Sub AutoFilter_mehrere_Kriterien()
'** Autofilter mit mehreren Kriterien
'** in Spalte B setzen

'** Dimensionierung der Variablen
Dim rngFilterRange As Range
Dim lngCriteriaCount As Long
Dim arrCriteria() As String

'** Anzahl der Kriterien festlegen
lngCriteriaCount = 3

'** Variable neu dimensionieren
ReDim arrCriteria(0 To lngCriteriaCount - 1)

'** Filterkriterien festlegen
arrCriteria(0) = "a"
arrCriteria(1) = "b"
arrCriteria(2) = "g"

'** Objektvariable setzen
Set rngFilterRange = ActiveSheet.Range("A4:B23")

'** Autofilter setzen/ausführen
rngFilterRange.AutoFilter Field:=2, _
  Criteria1:=arrCriteria(), _
  Operator:=xlFilterValues

'** Objektvariable zurücksetzen
Set rngFilterRange = Nothing
End Sub

{/codecitation}

Wenn dieses Makro ausgeführt wird, werden ebenfalls nur die Werte a, b und g gefiltert, da diese im Code als Filterkriterien fest vorgegeben sind. Wenn Sie weitere Filterkriterien hinzufügen möchten, so ergänzen Sie einfach die Liste der Kriterien [arrCriteria(x)]. Wichtig ist auch noch dass der Variable lngCriteriaCount die korrekte Anzahl der zu verwendenden Kriterien übergeben wird.

Um die Autofilter-Einstellungen per VBA zurücksetzen zu können, verwenden Sie einfach folgenden Code:

{codecitation}

Sub AutoFilter_zuruecksetzen()
'** Autofilter in Spalte B zurücksetzen
ActiveSheet.Range("$A$4:$B$23").AutoFilter Field:=2
End Sub

{/codecitation}

Wichtig: Diese Funktion steht erst ab 2007 zur Verfügung.

Die Beispieldatei können Sie über den folgenden Link herunterladen.

 

Partnerlinks

Relevante Artikel

  • Zeilen abhängig von einer Bedingung ausblenden

    Dieses Makro blendet Zeilen abhängig von einer Bedingung aus. In diesem Beispiel wird geprüft ob zwischen den Zeilen 1 und...

  • Zeilen (Einträge) abhängig vom Datum löschen

    Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A im Monat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002 daten daten daten 4 12.09.2002 daten daten daten 5 15.09.2002 daten daten daten 6 20.09.2002 daten daten daten 7 12.10.2002 daten daten daten 8 15.10.2002 daten daten daten 9 20.10.2002 daten daten daten 10 15.11.2002 daten daten daten 11 15.11.2002 daten daten daten 12 15.11.2002 daten daten daten 13 15.11.2002 daten daten daten 14 12.12.2002 daten daten daten 15 15.12.2002 daten daten daten 16 20.12.2002 daten daten daten Nach...

  • Dynamische DropDown-Liste mit Text Vorauswahl

    In diesem Beitrage zeigen wir, wie sich die Inhalte von DropDown-Felder dynamisch erzeugen lassen. Die Beispieldatei ist...

  • Zellen für eine einmalige Eingabe beschränken

    In diesem Beispiel zeigen wir Ihnen, wie Sie eine Zelle beziehungsweise einen Zellbereich für eine einmalige Eingabe von...

  • Zelladresse in Spalten- und Zeilenangaben trennen

    101084 Dieser Code trennt die Angabe der Adresse C15 in die Spalte C und in die Zeile 15. Die Trennung erfolgt mit der...

Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.