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

vba - filtern - 3 werte ausschließen

Forumthread: vba - filtern - 3 werte ausschließen

vba - filtern - 3 werte ausschließen
13.10.2022 12:26:25
Fred
Hallo Excel Experten,
ich möchte in meiner formatierten Tabelle Zeilen mit 3 bestimmten Werten ausfiltern.
Bei 2 Werten klappt es:

Worksheets("Auswahl").ListObjects("tab_Auswahl").Range.AutoFilter _
Field:=5, Criteria1:="A", Operator:=xlAnd, Criteria2:="B"
Wenn ich nun aber noch "C" ausfiltern möchte

    Worksheets("Auswahl").ListObjects("tab_Auswahl").Range.AutoFilter _
Field:=5, Criteria1:="A", Operator:=xlAnd, Criteria2:="B", Operator:=xlAnd, Criteria3:="C"
kommt eine Fehlermeldung.
Wo liegt der Fehler?
Gruss
Fred
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba - filtern - 3 werte ausschließen
13.10.2022 12:36:28
Der
Hallo,
bei mehr als 2 Werten musst Du mW die Kriterien als Array übergeben:
Criteria1:=Array("A", "B", "C")
Gruß
Michael
AW: vba - filtern - 3 werte ausschließen
13.10.2022 12:43:50
Fred
Hallo Michael,
bei

Criteria1:=Array("A", "B", "C")
wird nur das "C" ausgefiltert.
Hast du noch einen anderen Vorschlag?
Gruss
Fred
Anzeige
AW: vba - filtern - 3 werte ausschließen
13.10.2022 13:01:27
Daniel
Hi
Der Excelfilter kann maximal 2 Werte vollumfanglich und kombiniert filtern.
(criteria1 und Criteria2)
Eine weitere Möglichkeit ist das FilterArray.
Hierbei musst du aber zuerst ein eindimensionales Array erstellen, welches alle Werte, die angezeigt werden sollen, mindestens einmal vollständig ausgeschrieben enthält.
Joker oder Verglichen sind beim FilterArray nicht möglich.
Gruß Daniel
Anzeige
AW: vba - filtern - 3 werte ausschließen
13.10.2022 14:06:23
Der
Ja, danke für den Hinweis. Stimmt, in einer Spalte kann man nur zwei Textfiltereinträge bzw. Zahlenfiltereinträge vornehmen. Das Array kann man zum Auswählen mehrerer Einträge verwenden.
AW: vba - filtern - 3 werte ausschließen
13.10.2022 14:59:02
Daniel
Hi
Criteria3 gibt es nicht.
Wenn, dann so (oder so ähnlich)

Dim Arr1, Arr2, i as long
Arr2 = Worksheets("Auswahl").ListObjects("tab_Auswahl").Range.Columns(5).value
Redim Arr1(1 to ubound(Arr2, 1))
For i = 1 to ubound(Arr1)
Select Case Arr2(i, 1)
Case "A", "B", "C"
Arr1(i) = "xxxxxxxxx"
Case Else
Arr1(i) = Arr2(i, 1)
End Select
Next
Worksheets("Auswahl").ListObjects("tab_Auswahl").Range.AutoFilter _
Field:=5, Criteria1:=Arr1, Operator:=xlFilterArray
Aber bitte mal selber prüfen, ob die Syntax so richtig ist.
Hierzu von Hand nach 3 unterschiedlichen Werten filtern (drei Haken in der Auswahl setzen) und das ganze mit dem Recorder aufzeichnen.
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Excel Autofilter: Mehrere Werte ausschließen mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA mehrere Werte auszuschließen, kannst du den Autofilter verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic-Editor in Excel (Alt + F11).

  2. Erstelle ein neues Modul: Rechtsklicke auf „VBAProject (deineDatei.xlsx)“, wähle „Einfügen“ und dann „Modul“.

  3. Füge den folgenden VBA-Code ein, um die Werte "A", "B" und "C" auszuschließen:

    Sub FilterWerteAusschliessen()
       Dim Arr1 As Variant
       Dim Arr2 As Variant
       Dim i As Long
    
       ' Die Daten aus der Tabelle in ein Array laden
       Arr2 = Worksheets("Auswahl").ListObjects("tab_Auswahl").Range.Columns(5).Value
       ReDim Arr1(1 To UBound(Arr2, 1))
    
       ' Werte ausschließen
       For i = 1 To UBound(Arr1)
           Select Case Arr2(i, 1)
               Case "A", "B", "C"
                   Arr1(i) = "xxxxxxxxx" ' Platzhalter für ausgeschlossene Werte
               Case Else
                   Arr1(i) = Arr2(i, 1)
           End Select
       Next i
    
       ' Autofilter anwenden
       Worksheets("Auswahl").ListObjects("tab_Auswahl").Range.AutoFilter _
           Field:=5, Criteria1:=Arr1, Operator:=xlFilterArray
    End Sub
  4. Führe das Skript aus, um die Werte in deiner Tabelle auszuschließen.


Häufige Fehler und Lösungen

  • Fehler: „Criteria3 gibt es nicht“: Stelle sicher, dass du die Kriterien korrekt übergibst. Die Verwendung von Criteria1 und Criteria2 ist nur für zwei Werte möglich. Für mehr Werte musst du ein Array verwenden.

  • Problem: Nur ein Wert wird ausgeschlossen: Wenn nur "C" ausgeschlossen wird, überprüfe, ob die Syntax für das Array korrekt ist. Stelle sicher, dass du die Werte richtig definierst.


Alternative Methoden

Falls du mit VBA nicht vertraut bist oder eine einfachere Lösung suchst, kannst du auch die Standardfilter-Funktion in Excel verwenden:

  1. Markiere die Daten in deiner Tabelle.
  2. Gehe zu „Daten“ und klicke auf „Filter“.
  3. Setze Häkchen bei den Werten, die du nicht sehen möchtest (A, B, C).
  4. Drücke „OK“, um die Filter anzuwenden.

Praktische Beispiele

Wenn du beispielsweise eine Tabelle mit den Werten A, B, C, D und E hast und die Werte A, B, und C ausschließen möchtest, dann wird die Tabelle am Ende nur die Werte D und E anzeigen. Nutze den obigen VBA-Code, um dies zu automatisieren.


Tipps für Profis

  • Verwende Arrays effektiv: Bei komplexen Filtern ist es hilfreich, die Werte in Arrays zu speichern, um die Performance zu verbessern.
  • Testen mit dem Makro-Recorder: Du kannst die Makro-Aufzeichnung nutzen, um die genauen Schritte zu erfassen und die VBA-Syntax zu lernen.
  • VBA ausgeschrieben: Verstehe die Logik hinter Criteria1:=Array("A", "B", "C"), um deine Filteranfragen besser anpassen zu können.

FAQ: Häufige Fragen

1. Wie viele Werte kann ich mit dem Autofilter ausschließen?
Mit dem normalen Autofilter kannst du maximal zwei Werte gleichzeitig filtern. Für mehr Werte musst du ein Array verwenden.

2. Woher weiß ich, ob mein VBA-Code korrekt ist?
Nutze den Debugger im Visual Basic-Editor, um deinen Code Schritt für Schritt zu überprüfen. Achte auf Syntaxfehler und logische Fehler.

3. Kann ich den Filter auch ohne VBA anwenden?
Ja, du kannst die integrierten Filterfunktionen in Excel nutzen, um Werte auszuschließen, ohne Programmierung.

4. Was ist der Unterschied zwischen Criteria1 und Criteria2?
Criteria1 und Criteria2 dienen dazu, zwei unterschiedliche Filterkriterien festzulegen. Für mehr als zwei Werte ist die Verwendung eines Arrays erforderlich.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige