Supportnet Computer
Planet of Tech

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:


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

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!)

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

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


Antwort 6 von pelle

Hallo piano,

Danke für den Hinweis!

gruss
pelle

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: