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

Forumthread: Filter setzen mit mehreren Zellen

Filter setzen mit mehreren Zellen
20.04.2017 15:14:10
andre
Hi Leute,
ich beschäftige mich nun seit 1-2 Wochen mit VBA und das Forum hat mir schon sehr viel geholfen, viele nützliche Dinge gefunden. Jetzt habe ich jedoch eine herausforderung, die ich über die Suchfunktion nicht finden konnte (oder google) und zwar ich möchte:
Eine Spalte mit immer sich änderten Werten (kann von 1 zelle bis zu über 200 sein) in einen Filter eintragen von einer liste mit über 6000 werten. Bsp: Spalte
a1
b1
c1
d1
e1
... (diese Werte sollen nun in meiner "grossen" Tabelle in einer Spalte gefiltert werden, quasi als Filterkriterium) diese Werte und die anzahl ändern sich aber immer wieder...
Ich habe es mit einer schleife probiert und einer variable die zelle für zelle abklappert, aber dann filtert er mir a1, dann b1, dann c1, dann d1 usw... aber nie a1 und b1 und c1 und d1 und e1... es wird quasi nur 1 wert immer angezeigt bis zum letzten.
Kann mir wer das coden? vielen herzlichen dank
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter setzen mit mehreren Zellen
20.04.2017 16:22:46
UweD
Hallo
ich kann dein Makro nicht sehen. deshalb mal ein allgemeines Beispiel...

ActiveSheet.Range("$A$1:$T$445").AutoFilter Field:=1, _
Criteria1:=Array("a1", "b1", "c1", "d1", "e1"), Operator:=xlFilterValues

LG UweD
AW: Filter setzen mit mehreren Zellen
20.04.2017 18:10:44
andre
Hallo Uwe,
Vielen Dank dass du dich der Sache annimmst :)
für diesen Vorgang habe ich noch keines, das was ich getestet habe, habe ich gelöscht da es nicht funktionierte.
Nun, bei deiner Idee sortiert es meine grosse tabelle immer mit a1 b1 usw.. aber es ändern sich anzahl und auch die zellen komplett (neue filterkriterien) in zB. aa1, bb1, cc1, dd1 usw... D.h. ich müsste eine Liste quasi als variable anlegen und diese variable in den Filter setzten, was ich nich hin bekomme.
Anzeige
AW: Filter setzen mit mehreren Zellen
20.04.2017 19:13:25
andre
Ich habe mal eine Tabelle angehängt. Also in Tabelle1 Spalte A, stehen die kriterien die in Tabelle2 in Spalte A gefiltert werden sollen.
Ändern sich nun die Werte in Tabelle1 Spalte A, soll nach "knopfdruck" auch der Filter in Tabelle2 in SpalteA angepasst werden.
Hoffe nun versteht man es :)
https://www.herber.de/bbs/user/113017.xlsm
Anzeige
AW: Filter setzen mit mehreren Zellen
21.04.2017 08:47:51
UweD
Hallo
dann so...
Sub Filtern()
    Dim LR As Integer, Arr
    Dim TB2, Sp As Integer, EZ As Integer
    Set TB2 = Sheets("Tabelle2")
    Sp = 1 ' Spalte A 
    EZ = 1 ' ab Zeile1 
    With Sheets("Tabelle1")
        LR = .Cells(.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte 
        Arr = WorksheetFunction.Transpose(.Range(.Cells(EZ, Sp), .Cells(LR, Sp)))
    End With
    If TB2.AutoFilterMode Then TB2.AutoFilterMode = False ' Autofilter ausschalten 
    TB2.Range("$A:$G").AutoFilter Field:=1, _
        Criteria1:=Array(Arr), Operator:=xlFilterValues
End Sub

LG UweD
Anzeige
AW: Filter setzen mit mehreren Zellen
21.04.2017 20:18:10
andre
wow hat funktioniert ;D Vielen herzlichen Dank!!
AW: gern geschehen owt
22.04.2017 16:44:52
UweD

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel-Filter setzen mit mehreren Zellen


Schritt-für-Schritt-Anleitung

Um in Excel mehrere Werte in einer Zelle zu filtern, kannst du ein VBA-Makro verwenden. Hier sind die Schritte, die du befolgen solltest:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, wo du den Filter anwenden möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeinDokument)", dann "Einfügen" > "Modul".
  4. Kopiere und füge den folgenden Code in das Modul ein:
Sub Filtern()
    Dim LR As Integer, Arr
    Dim TB2 As Worksheet, Sp As Integer, EZ As Integer
    Set TB2 = Sheets("Tabelle2")
    Sp = 1 ' Spalte A
    EZ = 1 ' ab Zeile 1

    With Sheets("Tabelle1")
        LR = .Cells(.Rows.Count, Sp).End(xlUp).Row ' letzte Zeile der Spalte
        Arr = WorksheetFunction.Transpose(.Range(.Cells(EZ, Sp), .Cells(LR, Sp)))
    End With

    If TB2.AutoFilterMode Then TB2.AutoFilterMode = False ' Autofilter ausschalten
    TB2.Range("$A:$G").AutoFilter Field:=1, _
        Criteria1:=Array(Arr), Operator:=xlFilterValues
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, indem du ALT + F8 drückst, das Makro "Filtern" auswählst und auf "Ausführen" klickst.

Damit wird der Filter in "Tabelle2" basierend auf den Werten in "Tabelle1" angewendet.


Häufige Fehler und Lösungen

  • Fehler: Der Filter zeigt nur einen Wert an.

    • Lösung: Stelle sicher, dass die Werte in "Tabelle1" korrekt eingegeben sind und dass der VBA-Code die richtigen Zellen referenziert.
  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Überprüfe, ob das Makro aktiviert ist und die Sicherheitseinstellungen in Excel das Ausführen von Makros erlauben.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Filterfunktion direkt in Excel nutzen:

  1. Wähle die Daten, die du filtern möchtest.
  2. Gehe auf die Registerkarte "Daten" und klicke auf "Filter".
  3. Klicke auf die Dropdown-Liste in der Spalte, die du filtern möchtest, und wähle die gewünschten Werte aus.

Für das Filtern mehrerer Werte in einer Zelle kannst du auch die Funktion "Text in Spalten" verwenden, um die Werte zu trennen und dann zu filtern.


Praktische Beispiele

Angenommen, du hast in "Tabelle1" folgende Werte in Spalte A:

Wert1
Wert2
Wert3
Wert4

In "Tabelle2" möchtest du die Einträge in Spalte A filtern. Nachdem du das Makro ausgeführt hast, wird "Tabelle2" nur die Zeilen anzeigen, die mit "Wert1", "Wert2", "Wert3" oder "Wert4" übereinstimmen.


Tipps für Profis

  • Excel mehrere Filter gleichzeitig setzen: Du kannst mehrere Filter gleichzeitig setzen, indem du den Operator für die Kriterien in deinem VBA-Code anpasst.

  • Excel filtern mehrere Werte in Zelle: Stelle sicher, dass die Werte in einer Zelle durch ein Komma oder Semikolon getrennt sind, bevor du den Filter anwendest.

  • Valeri Berechnung Excel: Nutze benutzerdefinierte Funktionen in VBA, um komplexe Berechnungen durchzuführen, bevor du die Filter anwendest.


FAQ: Häufige Fragen

1. Frage
Wie kann ich den Filter zurücksetzen?
Antwort: Du kannst den Filter zurücksetzen, indem du das Autofilter-Feature erneut ausschaltest. Füge einfach TB2.AutoFilterMode = False im Makro hinzu, bevor du den neuen Filter anwendest.

2. Frage
Kann ich den Filter auch auf mehrere Spalten anwenden?
Antwort: Ja, du kannst den Code anpassen, um auch Kriterien für andere Spalten hinzuzufügen, indem du das Field-Argument im AutoFilter-Befehl änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige