Brauchen Sie Hilfe?
Web:     Online-Formular
E-Mail:  
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel:       +49(0)151 / 164 55 914

Nutzen Sie für Ihre Anfrage unser Online-Formular oder senden Sie uns eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!. Gerne können Sie aber auch direkt telefonisch Kontakt aufnehmen.

   
     Referenzen
 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   

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.

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

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:

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

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

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

 

   

Relevante Artikel

  • Leere Zeilen aus einer Tabelle entfernen

    Mit Hilfe des VBA-Codes aus diesem Beispiel können Leerzeilen aus einem Tabellenblatt entfernt werden. Werden Daten importiert oder über die Zwischenablage auf einem Tabellenblatt eingefügt, so...

  • Verbundene Zellen finden

    101023 Das folgende Makro findet alle verbunden Zellen und gibt die Zelladressenin einer MessageBox aus.Sub VerbundeneZellen_Adressen()'Die Zelladressen aller verbundenen Zellen werden...

  • Anzahl der markierten Zeilen ermitteln

    101068 Wenn Sie wissen möchten, wieviele Zeilen gerade markiert sind, dann hilft Ihnen diesesMakro weiter. Die Anzahl der Zeilen wird in einer MsgBox ausgegeben.  Es muss nicht die gesamte Zeile...

  • 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 Text oder Zahlen beschränken können. In diesem Beispiel soll der Zellbereich B3:E9...

  • Zwischenablage per VBA leeren

    Wenn Sie größere Datenmengen über die Zwischenablage in Excel per VBA kopieren, kann dies zu Problemen beim Schließen der Datei führen. Excel gibt beispielsweise die Meldung "Das Bild ist zu groß und...

   

Excel-Inside auf Facebook Excel-Live News blog Excel-Inside RSS-Feed Twitter Account für Excel-Inside Mail an Excel-Inside 

Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
Unsere Produkte
Office Schulungen VBA, Excel, Access
E-Book Formeln und Funktionen Excel 2013