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

  • Unikate in eigene Spalte extrahieren

    Mit diesem Makro werden alle nicht doppelten Daten aus Spalte A in Spalte B geschrieben. Jeder Wert wird also maximal...

  • Leere Zeilen aus einer Tabelle entfernen

    Mit Hilfe des VBA-Codes aus diesem Beispiel können Leerzeilen aus einem Tabellenblatt entfernt werden. Werden Daten...

  • Anzahl der markierten Zeilen ermitteln

    Wenn Sie wissen möchten, wieviele Zeilen gerade markiert sind, dann hilft Ihnen dieses Makro weier.  Die Anzahl der Zeilen...

  • Einträge nach Zellfarbe sortieren

      Folgendes Makro sortiert die Zellen A1 bis A10 nach Zellfarben in aufsteigender Reihenfolge.Maßgebend für das sortieren ist die...

Wir benutzen Cookies
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.