Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

AutoFilter mehrere Kriterien ausfiltern

Forumthread: AutoFilter mehrere Kriterien ausfiltern

AutoFilter mehrere Kriterien ausfiltern
19.03.2015 15:17:06
Matthias

Hallo Excellenten,
ich habe in Excel 2010 ein Problem mit dem AutoFilter unter VBA, ich habe bereits das gesamte Forum durchstöbert
finde jedoch keinen passenden Eintrag. Hoffentlich kann mir jemand von euch weiterhelfen.....
Ich möchte mehr als 2 Kriterien per VBA ausfiltern
z.B. möchte ich in Spalte A die Werte 1, 3, 5 und 7 ausfiltern wie könnte ich dies per VBA realisieren???
Gibt es vielleicht mit VBA eine Möglichkeit mehr als 2 Kriterien auszufiltern?
Ich möchte z.B. in Spalte A die Werte 1, 3, 5, und 7 ausfiltern ????
Bei diesem Beispiel ist immer nur das zuletzt aufgerufene Filterkriterium aktiv
Range("A1:A100").AutoFilter field:=1, Criteria1:="<>1 ", Operator:=xlFilterValues
Range("A1:A100").AutoFilter field:=1, Criteria1:="<>3 ", Operator:=xlFilterValues
Range("A1:A100").AutoFilter field:=1, Criteria1:="<>5 ", Operator:=xlFilterValues
Range("A1:A100").AutoFilter field:=1, Criteria1:="<>7 ", Operator:=xlFilterValues

Dieses Beispiel führt zu einer Fehlermeldung
Range("A1:A100").AutoFilter field:=1, Criteria1:=Array( _
"<>1 ", "<>3 ", "<>5 ", "<>7 "), Operator:=xlFilterValues

Danke für eure Hilfe

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
19.03.2015 15:22:24
Hajo_Zi
benutze den Makrorecorder.

AW: AutoFilter mehrere Kriterien ausfiltern
19.03.2015 15:32:48
Matthias
Hallo Hajo,
danke für deine schnelle Antwort. Der Makrorecorder bringt mich an dieser Stelle nicht weiter. Der benutzerdefinierte AutoFilter kann nur 2 Kriterien verarbeiten, mehr als zwei sind leider nicht möglich.

Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
19.03.2015 16:10:31
Hajo_Zi
Bei mir im Autofilter werden alle Einträge angezeigt, ich kann alle abwählen und die relevanten auswählen und das zeichnet der Recorder auch auf.
Gruß Hajo

AW: AutoFilter mehrere Kriterien ausfiltern
19.03.2015 15:51:41
Daniel
Hi
bei mehr als Zwei bediungungen musst du ein Array erstellen, welches alle Werte enthält die angezeigt werden müssen und dieses als Filterkriterium verwenden
Sub test()
Dim arr1, arr2
Dim Z As Long
arr1 = Range("A1:A100").Value
ReDim arr2(1 To UBound(arr1, 1)) As String
For Z = 2 To UBound(arr1)
Select Case arr1(Z, 1)
Case 1, 3, 5, 7
Case Else
arr2(Z) = CStr(arr1(Z, 1))
End Select
Next
Range("$A$1:$A$100").AutoFilter Field:=1, Criteria1:=arr2, Operator:=xlFilterValues
End Sub
Gruß Daniel

Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
19.03.2015 15:57:42
Matthias
Hallo Daniel,
ja für mehr als zwei Kriterien die angezeigt werden sollen ist dies richtig.
Ich möchte jedoch das z.B. der Wert 1,3,5 und 7 nicht angezeigt werden jedoch alle anderen Werte die in der Spalte vorhanden sind. Dies ist meine Problemstellung.
Hoffe dafür hast du auch eine Lösung....
Danke Gruß Matthias

Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
19.03.2015 16:15:25
Daniel
hab ich doch.
mein Makro macht genau das was du willst.
der Autofilter kann im Prinzip auch jetzt nur 2 Bediungungen verarbeiten.
Man hat aber die Möglichkeit, im als eine Bediungung ein Array anzubieten, welches alle Werte enthält, die angezeigt werden sollen.
Dieses Array muss man dann in einer kleinen Schleife öber die Werte erstellen und das macht mein Beispielcode.
Das Filterarray enthält alle Werte der Filterspalte ausser 1, 3, 5 und 7
Du solltest dich etwas mehr mit den Antowrten beschäftigen, bevor zu was schreibst.
Gruß Daniel

Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
20.03.2015 07:26:41
Matthias
Hallo Daniel,
vielen Dank für deine super schnelle Unterstützung das Makro funktioniert perfekt,
ich hatte nur noch einen Fehler drin.
Gruß Matthias

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

AutoFilter in Excel: Mehrere Kriterien ausfiltern


Schritt-für-Schritt-Anleitung

Um mehrere Kriterien im AutoFilter von Excel per VBA auszuwählen, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden. Dies funktioniert in Excel 2010 und neueren Versionen.

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf dein Projekt im Projektfenster und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub FilterMultipleCriteria()
       Dim arr1, arr2
       Dim Z As Long
       arr1 = Range("A1:A100").Value
       ReDim arr2(1 To UBound(arr1, 1)) As String
       For Z = 2 To UBound(arr1)
           Select Case arr1(Z, 1)
               Case 1, 3, 5, 7 ' Werte, die nicht angezeigt werden sollen
               Case Else
                   arr2(Z) = CStr(arr1(Z, 1))
           End Select
       Next
       Range("$A$1:$A$100").AutoFilter Field:=1, Criteria1:=arr2, Operator:=xlFilterValues
    End Sub
  4. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle FilterMultipleCriteria und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: „Automatisierung Fehler“: Dieser Fehler kann auftreten, wenn die Filterkriterien nicht korrekt definiert sind. Stelle sicher, dass die Werte im Filterarray ordnungsgemäß gespeichert sind.
  • Problem: Nur das letzte Filterkriterium wird angezeigt: Wenn du versuchst, mehr als zwei Kriterien zu filtern, vergewissere dich, dass du ein Array verwendest, um alle Werte zu speichern, die angezeigt werden sollen.
  • Mit dem benutzerdefinierten Filter arbeiten: Wenn du versuchst, mehr als zwei Kriterien mit einem benutzerdefinierten Filter zu verwenden, beachte, dass dies in Excel nicht direkt möglich ist. Stattdessen musst du die oben beschriebene Methode mit einem Array verwenden.

Alternative Methoden

  1. Verwenden des AutoFilters über die Benutzeroberfläche: Du kannst auch manuell den AutoFilter in Excel verwenden, um mehrere Kriterien auszuwählen. Klicke auf den Dropdown-Pfeil in der Spaltenüberschrift und wähle die gewünschten Werte aus.
  2. Excel-Formeln: Eine andere Möglichkeit besteht darin, Hilfsspalten zu verwenden, um zu kennzeichnen, welche Werte gefiltert werden sollen, und dann den Autofilter anzuwenden.

Praktische Beispiele

  • Beispiel 1: Wenn du die Werte 1, 3, 5 und 7 in Spalte A ausblenden möchtest, kannst du das oben genannte Makro verwenden. Es erstellt ein Filterarray, das alle anderen Werte enthält und somit die gewünschten Ergebnisse liefert.
  • Beispiel 2: Um Daten in einer Tabelle zu filtern, die mehr als zwei Kriterien enthält (z.B. verschiedene Produktkategorien), kannst du das Array mit den jeweiligen Kategorien anpassen.

Tipps für Profis

  • VBA optimieren: Optimiere dein Makro, indem du die Application.ScreenUpdating und Application.Calculation Eigenschaften deaktivierst, bevor du das Filter-Makro ausführst. Dadurch wird die Ausführung schneller.

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    ' Dein Filtercode hier
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
  • Debugging: Nutze Debug.Print, um die Werte deines Arrays während der Ausführung auszugeben. So kannst du einfach überprüfen, ob die richtigen Werte gefiltert werden.


FAQ: Häufige Fragen

1. Kann ich den AutoFilter auch in früheren Excel-Versionen verwenden?
Ja, die meisten VBA-Funktionen sind ab Excel 2007 verfügbar, aber einige Funktionen können in Excel 2003 oder älteren Versionen Einschränkungen haben.

2. Was, wenn ich mehr als 10 Kriterien filtern möchte?
Die Methode mit dem Array kann auch für mehr als 10 Kriterien verwendet werden. Achte darauf, dass du alle gewünschten Werte im Array speicherst, um die Ausgabe zu steuern.

3. Gibt es eine Möglichkeit, den Autofilter über Access zu steuern?
Ja, es gibt auch VBA-Methoden für Access, die ähnlich funktionieren wie in Excel. Hierbei kannst du die Access VBA Filter-Funktionen verwenden, um mehrere Kriterien zu setzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige