Wie kann ich Kontrollkästchen elegant miteinander verknüpfen, um nach mehreren Kriterien zu filtern?

Suboptimierer  08.03.2021, 09:45

Ist ein Kontrollkästchen nicht eine Checkbox?
Was möchtest du anstelle des Click-Ereignisses der Checkbox(en) abfangen?

knefie 
Fragesteller
 08.03.2021, 09:51

Oh stimmt: In dem Beispiel was ich gebaut habe handelt es sich um ein Active X Kontrollkästchen. In der Datei sind es Formularsteuerelemt Kontrollkästchen. Das änder ich ab

3 Antworten

Hallo knefie, ich kann kein Bild in die Kommentare einfügen, daher neue Antwort.
Ok, verstehe. Dann geht es aber ohne Makro, nur mit Formeln. Der Übersicht halber habe ich die 2 Tabellen auf einer dargestellt, in Spalte B sind deine Tiere:

Bild zum Beitrag

Zuerst ermittle ich die Treffer, also jene Zeilen, die mindestens einer Bedingung entsprechen mit Formel in G4 (und runter kopieren):
=WENN(ODER(UND($D$3;B4=$D$2);UND($E$3;B4=$E$2);UND($F$3;B4=$F$2));ZEILE();"")
Dann liste ich die Zeilennummern aufsteigend auf mit dieser Formel in H4 (und runter kopieren):
=WENNFEHLER(KKLEINSTE(G:G;ZEILE(H1));"")
Zum Schluss hole ich mir alle Daten aus Tabelle 1 zur entsprechenden Zeile, z.B. Formel in I4 (nach rechts und nach unten kopieren):
=WENNFEHLER(INDEX(A:A;$H4);"")
Wenn die Gefahr besteht, dass in Tabelle1 Zeilen eingefügt bzw. gelöscht werden, musst du die Formel in G4 indirekt adressieren.

Woher ich das weiß:eigene Erfahrung – Faulheit >> Neugier >> Wissen
 - (Microsoft Excel, VBA)
knefie 
Fragesteller
 10.03.2021, 10:07

Vielen Dank ich werde es ausprobieren

0
knefie 
Fragesteller
 19.03.2021, 01:20

Ich habe die Datei 1:1 nachgebaut um das Gleiche Ergebnis zu erzielen. Bei den Treffern mit der Formel =WENN(ODER(UND($D$3;B8=$D$2);UND($E$3;B8=$E$2);UND($F$3;B8=$F$2));ZEILE();"") bleibt die Zelle Leer bzw reagiert nicht auf das Wahr oder Falsch. Wenn ich manuell eingebe funktionieren die restlichen Ausgaben. Woran kann das liegen?

0
knefie 
Fragesteller
 24.03.2021, 14:33
@knefie

Ich habe jetzt die Formel etwas anders geschrieben, da der Teil $D$3;B4=$D$2- bei mir nicht funktioniert hat. =WENN(ODER(UND($D$3;B4="Hund");UND($E$3;B4="Katze");UND($F$3;B4="Vogel"));ZEILE();"").

0

Jede Checkbox hat auch ein "ChangeEvent".
Mach mal im Entwurlsmodus ein Doppelklick auf die CheckBox.
Dann wird zunächst eine Sub erstellt, die _Click heißt.
Wähle dann Change aus.
In dieser Change Funktion kannst du dann deine:
Call ausführen_Click
aufrufen. (ggf vorher "Public bekannt machen.)
Die Msg Box braucht man eigentlich nicht , denn wenn nichts ausgewählt ist sollte sich der Filter auf neutral stellen..

knefie 
Fragesteller
 10.03.2021, 10:27

Gibt es die Möglichkeit dieses über die Formularsteuerelemente Kontrollkästchen zu erreichen oder nur über die ActiveX Kontrollkästchen? Ich habe gesucht aber bisher nichts gefunden.

0
IchMalWiederXY  10.03.2021, 17:07
@knefie

Dies geht auch mit Formular Kästchen.
Denn so ein Formular Kästchen ist mit einer Zelle verknüpft. Wenn sich dann durch klicken diese Zelle ändert wird das "Worksheet_Change" Event ausgelöst welches wiederum deine Funktion aufrufen kann.
Du machst dies übrigens komplizierter als nötig. man kann dem Filter ein "Array" übergeben, was alles angeklickt werden soll.

0

Ich versteh nicht, warum so kompliziert? Was ist schlecht daran, im Autofilter einfach Hund, Vogel oder Katze anzuklicken?

Woher ich das weiß:eigene Erfahrung – Faulheit >> Neugier >> Wissen
knefie 
Fragesteller
 08.03.2021, 08:59

Es handelt sich um eine bestehende Datei mit zwei Tabellenblättern. Das erste Tabellenblatt hat Kontrollkästchen und das zweite Tabellenblatt zeigt die verschiedenen Kategorien nach Auswahl an.

1