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

Forumthread: Tabellenfilter via Zelle steuern

Tabellenfilter via Zelle steuern
03.02.2022 17:22:18
Kalle
Hallo zusammen,
ich würde gerne den Filter einer intelligenten Tabelle (A3) von einem anderen Blatt aus ansteuern. Da die Ansätze zur Autofilter-Funktion hier nicht greifen, bin ich über ListObjects gegangen: Gebe ich den Filterwert (1 bis 6; 11) per Hand in A3 ein, filtert die Tabelle auf Blatt 2 korrekt und die Ergebnisse auf Blatt 1 ändern sich entsprechend.
Das ChangeEvent greift.
1. Problem: Will ich die Wertänderung via Steuerungselement DropDown erzeugen, wird die Wertänderung in A3 ignoriert. Wie kann ich das verhindern? Es ändert sich doch auch der Wert in der Zelle; also wieso löst das Ereignis nicht aus?
2. Problem: Wie kann ich den Filter auf "Alle anzeigen" zurückstellen; gibt es einen Wert bei List.Object, der alle Filter zurücksetzt? "Alle anzeigen" eintippen klappt jedenfalls nicht ...
Anbei die Datei und der fragliche Code: https://www.herber.de/bbs/user/150841.xlsm

Sub worksheet_change(ByVal Target As Range)
If Target.Address(0, 0) = "A3" Then
Worksheets("EVA ZOE Block I").ListObjects("ZOEva1").Range.AutoFilter Field:=1, _
Criteria1:=Range("A3").Value
End If
End Sub
Viele Grüße
Kalle
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenfilter via Zelle steuern
03.02.2022 18:13:32
Daniel
Hallo Onur,
lieben Dank für die schnelle und schlanke Lösung, die meine erste Frage voll beantwortet. Doch wie gelingt mir die Selektion aller Kriterien, damit die EVA Daten über alle Staffeln (St.) einlaufen? Welchen Wert muss ich eingeben?
Viele Grüße
Kalle
Anzeige
AW: Tabellenfilter via Zelle steuern
03.02.2022 20:36:53
Kalle
Hi Onur,
... auch das klappt prima, wenn die ListFillRange reine Werte via Handeingabe beinhaltet; sobald ich die verfügbaren Staffeln (St.) mit der Formel Eindeutig() dynamisch als Quelle erzeuge, meckert er über Laufzeitunverträglichkeiten des Steuerelements mit dem Autofilter. Kannst Du Dir das erklären? Offenbar mag er keine Values, die qua Formeln in die Range laufen; ... statisch ginge es auch, aber dynamisch gefällt mir eben besser.
EIne Idee dazu? https://www.herber.de/bbs/user/150855.xlsm
Viele Grüße
Kalle
Anzeige
AW: Tabellenfilter via Zelle steuern
03.02.2022 23:22:12
Kalle
... klasse Lösung! Habe das Prinzip noch auf weitere Abfragen erweitert und bin sehr zufrieden. Ich wollte hinter die Variable Wert noch den String ". Staffel" packen (sieht schöner im Menu aus), aber dann versagt natürlich die Filterzuweisung auf den anderen Sheets. Der Clear-Befehl ist wichtig, damit die Liste nicht mit dem Counter überläuft und immer länger wird, oder? Hier das Tagesergebnis: https://www.herber.de/bbs/user/150862.xlsm
Mal sehen, ob ich aus Deiner Vorlage noch eine Jahres- und Teamabfrage hinbekomme.
Vielen Dank für Deine Hilfe!
Kalle
Anzeige
Gerne !
03.02.2022 23:24:54
onur
Schau dir auch die Lösung mit der Userform an.
;
Anzeige
Anzeige

Infobox / Tutorial

Tabellenfilter über eine Zelle steuern in Excel


Schritt-für-Schritt-Anleitung

Um den Filter einer intelligenten Tabelle in Excel von einer Zelle aus zu steuern, kannst du die folgenden Schritte befolgen:

  1. Öffne das Excel-Dokument und gehe zum Arbeitsblatt, das die intelligente Tabelle enthält.

  2. Füge ein Steuerelement hinzu: Gehe zu "Entwicklertools" > "Einfügen" > "Dropdown-Liste" (Formularsteuerelement) und platziere es auf dem Blatt.

  3. Verlinke die Dropdown-Liste mit der Zelle A3, indem du im Eigenschaftenfenster den Zellbezug angibst.

  4. Füge den VBA-Code ein: Öffne den VBA-Editor (Alt + F11) und füge den folgenden Code in das entsprechende Arbeitsblattmodul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address(0, 0) = "A3" Then
           Worksheets("EVA ZOE Block I").ListObjects("ZOEva1").Range.AutoFilter Field:=1, _
           Criteria1:=Range("A3").Value
       End If
    End Sub
  5. Speichere das Dokument als Makro-fähige Datei (.xlsm).

  6. Teste die Funktionalität, indem du einen Wert aus der Dropdown-Liste auswählst und prüfe, ob die Tabelle entsprechend gefiltert wird.


Häufige Fehler und Lösungen

  • Fehler: Das ChangeEvent wird nicht ausgelöst.

    • Lösung: Stelle sicher, dass das Steuerelement korrekt mit der Zelle A3 verknüpft ist. Prüfe auch, ob die Makros aktiviert sind.
  • Fehler: Filter zurücksetzen funktioniert nicht.

    • Lösung: Verwende den folgenden Code, um alle Filter zurückzusetzen:
    Worksheets("EVA ZOE Block I").ListObjects("ZOEva1").AutoFilter.ShowAllData

Alternative Methoden

Falls du die Filterung auf eine andere Weise steuern möchtest, kannst du auch die Funktion Eindeutig() in Excel 365 verwenden, um dynamische Filterkriterien zu erstellen. Diese Funktion kann helfen, die Liste der Filteroptionen automatisch zu aktualisieren.


Praktische Beispiele

  1. Beispiel 1: Filtere nach Staffeln:

    • Setze die Dropdown-Liste auf die verfügbaren Staffeln (z.B. 1 bis 6) und verwende den oben genannten VBA-Code, um die Tabelle zu filtern.
  2. Beispiel 2: Mehrere Filter anwenden:

    • Um mehrere Kriterien zu filtern, kannst du den Criteria1 Parameter erweitern, um eine Liste von Werten zu verwenden.

Tipps für Profis

  • Nutze die UserForm-Funktion in Excel, um eine benutzerfreundliche Oberfläche für die Filterung zu erstellen.
  • Experimentiere mit verschiedenen Steuerelementen, um die Benutzererfahrung zu verbessern.
  • Achte darauf, die Daten regelmäßig zu überprüfen, um sicherzustellen, dass die Filter korrekt eingestellt sind.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Filterkriterien gleichzeitig anwenden?
Du kannst die Criteria1 und Criteria2 Parameter im VBA-Code verwenden, um mehrere Filterkriterien zu definieren.

2. Was tun, wenn die Dropdown-Liste nicht aktualisiert wird?
Überprüfe die Quelle der Dropdown-Liste und stelle sicher, dass sie mit den aktuellen Daten verknüpft ist. Verwende die Eindeutig()-Funktion für dynamische Listen, falls verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige