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

VBA Mehrfachfilter für Tabelle definieren

Forumthread: VBA Mehrfachfilter für Tabelle definieren

VBA Mehrfachfilter für Tabelle definieren
17.09.2018 13:21:34
Robert
Hallo,
ich möchte mit VBA eine Tabelle(1) mit den Werten aus Tabelle(2) als Mehrfachauswahl filtern.
Lösungsversuch: Ich habe für die Tabelle(2) einen Namensmanager (Bezeichnung "Filter") definiert. Als Beispiel soll der Namensmanager/ die Tabelle(2) die Werte "Apfel", "Tomate", "Banane" umfassen. Anschließend soll das Makro die Tabelle(1) nach den x-beliebigen Werten des Namensmanagers/der Tabelle(2) filtern.
Mein Code lautet wie folgt:
Sub Filtern()
x = Evaluate("Filter") 'Die Formel liest den Namensmanager aus. Als Werte verwende ich die  _
Platzhalter ("Apfel", "Tomate", "Banane")
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=1, Criteria1:=x, Operator:=  _
xlFilterValues 'Es wird nur nach dem ersten Wert "Apfel" gefiltert
' Mit fixen Werten würde das ganze so funktionieren:
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=1, Criteria1:=Array("Apfel", "  _
Tomate", "Banane"), Operator:=xlFilterValues
End Sub
Leider liefert mein Lösungsversuch nur den einfachen Filter ("Apfel"), anstatt die Tabelle nach allen x-beliebigen Filtern ("Apfel", "Tomate", "Banane") zu filtern. Ich hoffe ihr könnt mir mit meinem Problem weiterhelfen!
PS: Der Lösungsversuch mit dem Namensmanager ist nur optional.
Vielen Dank vorab für eure Unterstützung!
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Mehrfachfilter für Tabelle definieren
17.09.2018 13:56:06
Werner
Hallo Robert,
x = Application.WorksheetFunction.Transpose(Evaluate("Filter"))
Gruß Werner
AW: VBA Mehrfachfilter für Tabelle definieren
18.09.2018 09:44:47
Robert
Hallo Werner,
vielen Dank für die schnelle Lösung. Funktioniert super!
Gerne u. Danke für die Rückmeldung. o.w.T.
18.09.2018 10:10:05
Werner
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Mehrfachfilter für Tabelle definieren


Schritt-für-Schritt-Anleitung

Um einen excel mehrfachfilter in VBA zu setzen, folge diesen Schritten:

  1. Vorbereitung der Tabellen: Stelle sicher, dass du zwei Tabellen hast. Tabelle(1) ist die, die gefiltert werden soll, und Tabelle(2) enthält die Werte, nach denen gefiltert wird (z.B. "Apfel", "Tomate", "Banane").

  2. Namensmanager: Definiere im Namensmanager einen Bereich für die Filterwerte. Nenne diesen Bereich zum Beispiel "Filter".

  3. VBA-Code einfügen: Öffne den VBA-Editor (Alt + F11) und füge ein neues Modul hinzu. Kopiere den folgenden Code in das Modul:

    Sub Filtern()
        Dim x As Variant
        x = Application.WorksheetFunction.Transpose(Evaluate("Filter"))
        ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=1, Criteria1:=x, Operator:=xlFilterValues
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus. Deine Tabelle(1) sollte nun nach den Werten aus Tabelle(2) gefiltert werden.


Häufige Fehler und Lösungen

  • Fehler: Nur der erste Wert wird gefiltert
    Lösung: Stelle sicher, dass du Application.WorksheetFunction.Transpose verwendest, um die Filterwerte korrekt zu transponieren.

  • Fehler: Namensmanager nicht gefunden
    Lösung: Überprüfe, ob der Name "Filter" korrekt im Namensmanager definiert ist.


Alternative Methoden

Wenn du den excel filter mehrfachauswahl anders umsetzen möchtest, kannst du auch die Standardfilteroptionen von Excel nutzen:

  1. Wähle die Daten in Tabelle(1) aus.
  2. Gehe zu „Daten“ > „Filter“ und aktiviere die Filteroptionen.
  3. Wähle die gewünschten Werte aus der Dropdown-Liste aus.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie der Code in der Praxis aussieht:

  • Tabelle(2) hat die Werte:

    • Apfel
    • Tomate
    • Banane
  • Der VBA-Code filtert Tabelle(1) und zeigt nur die Zeilen an, die "Apfel", "Tomate" oder "Banane" in der ersten Spalte haben.


Tipps für Profis

  • Nutze die Criteria1-Option in Kombination mit Criteria2, um komplexere Filter zu erstellen.
  • Experimentiere mit verschiedenen Operatoren wie xlAnd oder xlOr, um die Filterbedingungen zu verfeinern.
  • Halte deinen Code sauber und gut kommentiert, um spätere Anpassungen zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich mehrere Spalten gleichzeitig filtern?
Ja, du kannst mehrere Spalten filtern, indem du die AutoFilter-Methode mehrfach anwendest.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der gezeigte Code funktioniert in den meisten modernen Excel-Versionen, die VBA unterstützen (Excel 2010 und später).

3. Was mache ich, wenn der Namensmanager nicht funktioniert?
Überprüfe, ob der Name im Namensmanager korrekt eingegeben ist und keine Leerzeichen enthält.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige