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

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.