Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1280to1284
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Autofilter in anderem tabellenblatt
02.10.2012 16:57:59
Marcel
Hallo zusammen,
nach langem suchen, googlen und probieren wend ich mich schließlich mit diesem Thread an euch als erfahrene Gemeinde.
Vorab zur Info, ich bin nicht gerade gut vertraut mit Makros.
Folgendes Problem:
Ich habe eine Datei mit 2 Tabellenblättern.
Auf dem einen stehen alle Daten, das andere soll als Navigationsblatt dienen.
Nun möchte ich in dem Navigationsblatt steuerelemente (Kontrollkästchen) einfügen. Die Auswahl eines Kontrollkästchens soll den (warscheinlich benutzerdefinierten) Filter im Datenblatt auslösen.
Als Beispiel:
Es gibt im Datenblatt (Name des Tabellenblatts: Data) die folgenden Kategorien:
Sport
Ernährung
Operation
Sonstiges
für jede kategorie soll es im navigationsblatt (Name des Tabellenblatts: Dashboard) ein kontrollkästchen geben.
Gleichzeitig, soll es auch möglich sein eine Mehrfachauswahl zu treffen. D.h. Alle Maßnahmen die zur Kategorie Sport ODER Ernährung gehören etc....
Ich wäre sehr dankbar für eure Hilfe!
Anbei noch die Datei, ich hoffe das macht das problem verständlich.
Ich hoffe ihr könnt mir weiterhelfen!!
https://www.herber.de/bbs/user/81959.xlsx

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter in anderem tabellenblatt
02.10.2012 23:20:00
{Boris}
Hi Marcel,
das ist nicht "mal eben" gemacht, daher die Frage: Ist das Deine FINALE Datei? Oder kommen da noch Spalten und damit Kontrollkästchen dazu?
Zudem ist es ja nicht immer der Begriff, nach dem man filtern muss, sondern manchmal auch nur das "x", bei dem der Begriff nur die Überschrift ist.
Vom Ansatz her würde ich erstmal die Kontrollkästchen ganz korrekt an den Zellgrenzen ausrichten (das macht man bei gedrückter Alt-Taste), damit man über die TopLeftCell-Eigenschaft den zum Kästchen gehörenden Begriff auslesen kann. Somit kann man dann jedem Kontrollkästchen das selbe Makro zuweisen. Im Beispiel wird nur der zugehörige Begriff ausgegeben:
Sub Incentive()
MsgBox Range(Tabelle6.Shapes(Application.Caller).TopLeftCell.Address).Value
End Sub
Aber erzähl mal ein wenig mehr.
VG, Boris

Anzeige
Das geht natürlich etwas einfacher...
02.10.2012 23:22:52
{Boris}
....sorry:
Sub Incentive()
MsgBox Tabelle6.Shapes(Application.Caller).TopLeftCell.Value
End Sub
Aber das wäre auch erst der Anfang.
VG, Boris

AW: Mehr Infos
03.10.2012 12:12:22
Marcel
Hi Boris,
danke erstmal für deine Antwort!
Nein, es handelt sich hierbei nicht um die finale Datei. Die Datei ist eine Art dummy, damit ich den Code verstehe und auf weitere Kästchen anwenden kann. D.h. in der Originaldatei gibt es in dem Tabellenblatt "Data" wesentlich mehr Spalten und auch mehr Zeilen. Ich hoffe das stellt kein Problem dar?
Stimmt, dein Argument mit dem "x" ist richtig. Zur not könnte ich allerdings aus den drei Spalten eine machen und jeweils den Text eingeben.
Ich glaube es würde mir sehr helfen, wenn ich den code einmal in der datei habe und er funktioniert und ich ihn dann "einfach" auf die anderen Kategorienamen und Kontrollkästchen ändern kann. ich geh davon aus, dass das dann immer das gleiche ist und man nur den name des kontrollkästchens im code ändern muss(?). Da ich eine null in vba/makros bin, sagt mir leider dein code auch nicht wirklich was =(.
Als Bonus wäre natürlich noch, wenn als Ausgangssituation Alle ausgewählt sind und es vllt zusätzlich noch das Auswahlfeld "alle" jeweils gibt. Aber das wäre wie gesagt eher ein Bonus. Es scheint ja nicht ganz einfach zu sein, das ganze so umzusetzen.
Danke im voraus!!!
Beste Grüße,
Marcel

Anzeige
AW: Mehr Infos
03.10.2012 21:22:31
{Boris}
Hi Marcel,
es wäre wirklich hilfreich, Deine finale Datei zu sehen.
Um den Aufwand gering zu halten, wäre es sinnvoll, jeder CheckBox das selbe Makro zuzuweisen. Und über die Application.Caller-Eigenschaft kann man dann dennoch zwischen den unterschiedlichen Boxen unterscheiden.
Man muss halt über die Aktivierung-/Deaktivierung einer Box die richtige Filterspalte UND das richtige Filterkriterium bestimmen können (dazu muss man aber - wie bereits beschrieben - den zugehörigen Zellwert via TopLeftCell-Eigenschaft auslesen können - und das funktioniert wiederum nur, wenn die Boxes genau an den Zellgrenzen ausgerichtet sind - Stichwort: gedrückte Alt-Taste). Und da es mitunter sehr viele ODER-Bedingungen innerhalb einer Spalte sein können, muss man diese Kriterien in ein Array einlesen und danach filtern (ein einfaches entweder/oder reicht da nicht aus).
Und das alles bei "VBA - nein".
Sei mir nicht bös - aber wie ich schon schrieb: Das ist nicht "mal eben" gemacht.
Zumindest mal muss der komplette Dateiaufbau im Sinne meiner Ausführungen logisch sein.
Ich lass die Frage aber mal offen. Vielleicht hat jemand anderes noch einen anderen Ansatz.
VG, Boris
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige