Supportnet / Forum / Tabellenkalkulation
Autofilter über mehrere Tabellenblätter
Frage
Hallo Leute,
könnte nochmal eure Hilfe brauchen.
Versuche mal das Problem verständlich zu beschreiben! :-)
Ich habe in einem Tabellenblatt Werte aus dem lfd. "Geschäftsjahr" stehen:
a) pro Monat 30 Zeilen
b) 16 Monate
Über einen Autofilter kann der gewünschte Monat ausgewählt werden.
In einem zweiten Tabellenblatt stehen die entsprechenden Werte des Vorjahres.
In einem dritten Tabellenblatt stehen die Veränderungswerte.
In dem zweiten und dritten Tabellenblatt ist ebenfalls ein Autofilter enthalten.
Was ich gerne erreichen würde, wäre
wenn in einem der 3 Tabellenblätter ein Monat ausgewählt wird, "automatisch" dies für die anderen Tabellenblätter übernommen wird.
Nach Möglichkeit bitte keine VBA-Lösung, habe das immer noch nicht "gefressen"!
Wäre prima, wenn jemand einen Tipp für mich hat!
gruss
pelle
Antwort 1 von piano
Hallo pelle
Tut mir leid, aber ich muß Dich mit einem Makro beglücken, andere Lösung wird es wohl kaum geben. Aber keine Angst, es geht ganz einfach:
1. Extras / Makro / Makro aufzeichnen - "Diese Arbeitsmappe" (Name "Makro1")wählen - "OK" und Aufzeichnung sofort wieder beenden. (Das ist die einfachste Methode in die VBA-Umgebung zu gelangen)
2. Mit Alt / F11 VBA-Editor aufrufen. Der aufgezeichnete Makro kann gelöscht werden. An dieser Stelle folgenden Code eingeben:
Eventuell hier die Tabellennamen für "Tabelle1 - 3" ändern.
3. Zurück zu Excel. Symbolleiste "Zeichnen" einblenden, hier aus Autoformen, Standardformen den Rahmen wählen, und in Tabellenblatt einfügen.
4. Rahmen mit rechter Maustaste anklicken, Text einfügen und den Makro "FilterInDreiBlättern" zuordnen.
Nach Speichern und neu laden wird der Makro bei Klick auf den Schaltknopf ausgeführt.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Tut mir leid, aber ich muß Dich mit einem Makro beglücken, andere Lösung wird es wohl kaum geben. Aber keine Angst, es geht ganz einfach:
1. Extras / Makro / Makro aufzeichnen - "Diese Arbeitsmappe" (Name "Makro1")wählen - "OK" und Aufzeichnung sofort wieder beenden. (Das ist die einfachste Methode in die VBA-Umgebung zu gelangen)
2. Mit Alt / F11 VBA-Editor aufrufen. Der aufgezeichnete Makro kann gelöscht werden. An dieser Stelle folgenden Code eingeben:
Sub FilterInDreiBlättern()
Dim Kriterium
Kriterium = InputBox("Bitte Auswahlkriterium eingeben", , "Monat")
Sheets("Tabelle1").Select
Selection.AutoFilter Field:=1, Criteria1:=Kriterium
Sheets("Tabelle2").Select
Selection.AutoFilter Field:=1, Criteria1:=Kriterium
Sheets("Tabelle3").Select
Selection.AutoFilter Field:=1, Criteria1:=Kriterium
Sheets("Tabelle1").Select
End Sub
Eventuell hier die Tabellennamen für "Tabelle1 - 3" ändern.
3. Zurück zu Excel. Symbolleiste "Zeichnen" einblenden, hier aus Autoformen, Standardformen den Rahmen wählen, und in Tabellenblatt einfügen.
4. Rahmen mit rechter Maustaste anklicken, Text einfügen und den Makro "FilterInDreiBlättern" zuordnen.
Nach Speichern und neu laden wird der Makro bei Klick auf den Schaltknopf ausgeführt.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von pelle
Hallo piano,
erstmal besten Dank für deinen Tipp!
Es funktionert!!!
Aber der Mensch hat ja immer was zu meckern! :-)
Habe bei deinem Lösungsvorschlag noch ein Problem
und einen Optimierungswunsch.
a) wenn ich alle Monate sehen möchte, funktioniert es nicht.
Die Eingabe/Auswahl "Alle", wie beim Autofilter wird nicht unterstützt.
b) Habe ich bei meiner Anfrage auch nich klar ausgedrückt, sorry.
Wenn ich in einem der 3 Tabellenblätter eine Auswahl treffe, möchte ich aber in diesem Tabellenblatt bleiben.
Ich habe den Makro in allen Blättern eingefügt!
Bei der Auswahl in Blatt 2 oder Blatt 3 lande ich nachher immer in Blatt 1!
Gut, eine Lösung wäre, den Makro in der letzten Zeile anzupassen und unter einem anderen Namen z.B: FilterInDreiBlättern2 und FilterInDreiBlättern3
zu speichern.
Aber warum 3 Makros, wenn vielleicht einer reicht!
Dann vielleicht noch eine Verständnisfrage:
Wenn ich ein Tabellenblatt umbenenne, wird dies in der "Formelwelt" automatisch berücksichtigt.
Warum nicht bei den Makros oder muß ich da vielleicht noch was anderes tun?
gruss
pelle
erstmal besten Dank für deinen Tipp!
Es funktionert!!!
Aber der Mensch hat ja immer was zu meckern! :-)
Habe bei deinem Lösungsvorschlag noch ein Problem
und einen Optimierungswunsch.
a) wenn ich alle Monate sehen möchte, funktioniert es nicht.
Die Eingabe/Auswahl "Alle", wie beim Autofilter wird nicht unterstützt.
b) Habe ich bei meiner Anfrage auch nich klar ausgedrückt, sorry.
Wenn ich in einem der 3 Tabellenblätter eine Auswahl treffe, möchte ich aber in diesem Tabellenblatt bleiben.
Ich habe den Makro in allen Blättern eingefügt!
Bei der Auswahl in Blatt 2 oder Blatt 3 lande ich nachher immer in Blatt 1!
Gut, eine Lösung wäre, den Makro in der letzten Zeile anzupassen und unter einem anderen Namen z.B: FilterInDreiBlättern2 und FilterInDreiBlättern3
zu speichern.
Aber warum 3 Makros, wenn vielleicht einer reicht!
Dann vielleicht noch eine Verständnisfrage:
Wenn ich ein Tabellenblatt umbenenne, wird dies in der "Formelwelt" automatisch berücksichtigt.
Warum nicht bei den Makros oder muß ich da vielleicht noch was anderes tun?
gruss
pelle
Antwort 3 von piano
Hallo
Du benötigst jeweils 2 Schaltknöpfe (oder gleich Symbole in einer eigenen Symbolleiste) mit den Makros für Monatswahl "FilterInDreiBlättern" und Alle "AlleInDreiBlättern".
Die folgenden Makros sind unabhängig von der Ausgangstabelle und auch vom Namen der Tabelle (Allerdings hier immer die ersten drei!)
Gruß piano
Du benötigst jeweils 2 Schaltknöpfe (oder gleich Symbole in einer eigenen Symbolleiste) mit den Makros für Monatswahl "FilterInDreiBlättern" und Alle "AlleInDreiBlättern".
Die folgenden Makros sind unabhängig von der Ausgangstabelle und auch vom Namen der Tabelle (Allerdings hier immer die ersten drei!)
Sub FilterInDreiBlättern()
Dim Kriterium
Dim Tabelle As Worksheet
Set Tabelle = ActiveSheet
Kriterium = InputBox("Bitte Auswahlkriterium eingeben", , "Monat")
Sheets(1).Select
Selection.AutoFilter Field:=1, Criteria1:=Kriterium
Sheets(2).Select
Selection.AutoFilter Field:=1, Criteria1:=Kriterium
Sheets(3).Select
Selection.AutoFilter Field:=1, Criteria1:=Kriterium
Tabelle.Select
End Sub
Sub AlleInDreiBlättern()
Dim Tabelle As Worksheet
Set Tabelle = ActiveSheet
Sheets(1).Select
Selection.AutoFilter Field:=1
Sheets(2).Select
Selection.AutoFilter Field:=1
Sheets(3).Select
Selection.AutoFilter Field:=1
Tabelle.Select
End Sub
Gruß piano
Antwort 4 von pelle
Hallo piano,
diese Variation gefällt mir besser!
Besten Dank!!!
Vielleicht sollte ich mich doch mal mehr mit VBA etc. auseinandersetzen! :-)
Hast du vielleicht noch einen Hinweis/Tipp warum in den Makros
eine Umbenennung des Tabellennamens nicht nachvollzogen wird?
gruss
pelle
diese Variation gefällt mir besser!
Besten Dank!!!
Vielleicht sollte ich mich doch mal mehr mit VBA etc. auseinandersetzen! :-)
Hast du vielleicht noch einen Hinweis/Tipp warum in den Makros
eine Umbenennung des Tabellennamens nicht nachvollzogen wird?
gruss
pelle
Antwort 5 von piano
Hallo
Weil Excel und VBA völlig unabhängig voneinander arbeiten.
Daher habe ich auch vorgeschlagen, mit Positionsindices, und nicht mit Tabellennamen zu arbeiten.
Gruß piano
Weil Excel und VBA völlig unabhängig voneinander arbeiten.
Daher habe ich auch vorgeschlagen, mit Positionsindices, und nicht mit Tabellennamen zu arbeiten.
Gruß piano
Antwort 6 von pelle
Hallo piano,
Danke für den Hinweis!
gruss
pelle
Danke für den Hinweis!
gruss
pelle

