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

Forumthread: Filter über mehrere Tabellenblätter

Filter über mehrere Tabellenblätter
13.02.2023 16:20:20
Sonja
Hallo Profis,
ich denke meine Frage ist schnell beantwortet:
Ich habe eine Excel-Datei mit mehreren Tabellenblättern.
Blatt 1 = Zusammenfassung (aus den 4 dahinter liegenden Tabellenblättern)
Blatt 2-5 = Sind Tabellenblätter mit denen ich aus einer externen Datei Daten mit PowerQuere ziehe.
Jetzt möchte ich haben, dass beim filtern des entsprechenden Auftragnehmers in der "Zusammenfassung" alle anderen Tabellenblätter automatisch den gleichen Filter verwenden. Also so, dass ich nicht in Blatt 2-5 nochmal extra filtern muss.
Geht das?
Danke schon mal vorab!
Sonja
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
superschnell beantwortet: nein, aber
13.02.2023 16:33:52
Yal
Hallo Sonja,
wenn wir davon ausgehen, dass die Daten in "Zusammenfassung" aus einer PQ-Abfrage, die auf die anderen PQ-Abfrage aufbaut, dann ist PQ nicht mehr dabei, wenn die Daten in das Excel-Blatt ausgegeben werden, spricht, der Filter den Du anschliessend machst, hat mit PQ nicht mehr zu tun. Somit kann diese Aktion nicht dazu führen, dass deine PQ-Abfrage in den anderen Blätter auch so gefilter werden.
Es handelt um einen Filter auf Excel-Ebene, nicht auf PQ-Ebene. Um diese Filter zu "propagieren", braucht man VBA. Idealerweise ist der Name des Feldes, den Du im "Zusammenfassung" filterst auch in alle anderen Abfrage-Tabelle (genau gesagt: in den intelligente Tabelle, die den PQ verwendet, um seine Daten zu übergeben), dann kann man das Abfangen eines Ereignisses einrichten, sodass diese Filteraktion abgefangen wird und auf die anderen Tabellen angewendet wird.
Alternativ: wenn es nur eine Anzeige-Problem, kann man bei Schaltung zu einem anderen Blatt den Filter von "Zusammenfassung" lesen+anwenden.
Wie beschieden ist dann dein VBA? Du könntest mit dem Makrorekorder schon viel Vorarbeit machen: MR starten, "Zusammenfassung filtern", MR stoppen (nicht zu viel auf einmal aufzeichnen lassen, sonst wird der Code ungeniessbar). Das gleich nochmal in einem anderen "abhängigen" Blatt machen. Dann schauen wie ein Ereignis "Workbook_SheetActivate" einkodiert wird. Fast fertig.
VG
Yal
Anzeige
AW: logisch - aber (PQ)
13.02.2023 16:54:36
Sonja
Hallo Yal,
manchmal hat man schon ein Brett vorm Kopf - Entschuldigung, dass du jetzt soo einen langen Text schreiben musstest. Da hätte ich ja mal selbst drauf kommen können. Läuft Dankeschön !!!
Aber in dem Zusammenhang hab ich noch eine weitere Frage. Wenn ich die Daten über PQ aktualisiere, haut es mir teilweise die Formatierung um. WARUM macht er das in manchen Spalten und in manchen nicht - grrrr.
Vielleicht hast du da ja auch eine Lösung ?
Gruß
Sonja
Anzeige
AW: logisch - aber (PQ)
13.02.2023 17:43:43
Yal
Die Formatierung in Excel muss mit den Format, die PQ zurückgibt, mieteinander passen. Wenn Du von PQ ein Zahl bekommst, aber daraus eine Datum sehen möchtest, solltest Du nicht nur in Excel als Datum formatieren, sondern auch in PQ.
Manche Feld in PQ sind "Any" ( Anzeige "ABC/123"). Das ist manchmal nicht präzise genug.
VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Filter über mehrere Tabellenblätter in Excel anwenden


Schritt-für-Schritt-Anleitung

Um in Excel mehrere Filter gleichzeitig anzuwenden, insbesondere über verschiedene Tabellenblätter hinweg, kannst du VBA verwenden. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deineArbeitsmappe.xlsx)" > Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
       Dim ws As Worksheet
       Dim filterValue As String
    
       ' Filterwert aus dem Aktiven Blatt
       filterValue = Worksheets("Zusammenfassung").Range("A1").Value
    
       ' Filter auf allen Blättern anwenden
       For Each ws In ThisWorkbook.Worksheets
           If ws.Name <> "Zusammenfassung" Then
               ws.Range("A1").AutoFilter Field:=1, Criteria1:=filterValue
           End If
       Next ws
    End Sub
  4. Passe den Code an: Ersetze "A1" mit der Zelle, die den Filterwert enthält. Stelle sicher, dass die Spaltenüberschriften in allen Blättern übereinstimmen.

  5. Schließe den VBA-Editor und speichere deine Arbeitsmappe als Excel-Arbeitsmappe mit Makros (*.xlsm).

Jetzt wird beim Aktivieren von "Zusammenfassung" der Filterwert automatisch auf die anderen Blätter angewendet.


Häufige Fehler und Lösungen

  • Fehler: Der Filter wird nicht angewendet.

    • Lösung: Überprüfe, ob die Spaltenüberschriften in den Tabellenblättern identisch sind. Der Filter funktioniert nur, wenn die Struktur gleich ist.
  • Fehler: VBA-Code wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter und aktiviere die Makros.

Alternative Methoden

Es gibt auch Möglichkeiten, Excel-Filter auf mehrere Blätter anzuwenden, ohne VBA zu verwenden:

  1. Power Query: Du kannst Daten aus mehreren Blättern in einer einzigen Abfrage zusammenführen und dann einen Filter anwenden.
  2. Pivot-Tabellen: Erstelle eine Pivot-Tabelle, die Daten aus mehreren Blättern aggregiert und filtere die Daten innerhalb der Pivot-Tabelle.

Praktische Beispiele

Angenommen, du hast folgende Blätter:

  • Zusammenfassung: Hier filterst du nach Auftragnehmern.
  • Blatt 2, Blatt 3: Enthalten die Auftragsdaten.

Mit dem VBA-Code, den wir oben eingefügt haben, wird beim Filtern in "Zusammenfassung" automatisch der gleiche Filter auf Blatt 2 und Blatt 3 angewendet.


Tipps für Profis

  • Wenn du mehrere Filter gleichzeitig anwenden möchtest, kannst du den VBA-Code erweitern, um mehrere Kriterien zu berücksichtigen.
  • Teste den Code in einer Kopie deiner Datei, um Datenverluste zu vermeiden.
  • Halte deine Excel-Version auf dem neuesten Stand, um alle Funktionen optimal nutzen zu können.

FAQ: Häufige Fragen

1. Kann ich den Filter auf mehrere Blätter gleichzeitig anwenden, ohne VBA zu verwenden?
Ja, aber die Möglichkeiten sind begrenzt. Power Query oder Pivot-Tabellen sind gute Alternativen.

2. Wie kann ich sicherstellen, dass die Formatierung nach einer Aktualisierung von Power Query erhalten bleibt?
Stelle sicher, dass die Datentypen in Power Query korrekt definiert sind. Daten sollten im richtigen Format (z.B. Datum oder Zahl) zurückgegeben werden.

3. Was mache ich, wenn ich mehrere Filter gleichzeitig anwenden möchte?
Es ist möglich, mehrere Filter innerhalb des VBA-Skripts zu implementieren, indem du den Criteria1-Parameter entsprechend anpasst.

4. Wie kann ich ein gefiltertes Ergebnis in ein anderes Tabellenblatt übertragen?
Du kannst den gefilterten Bereich kopieren und in das gewünschte Tabellenblatt einfügen. Alternativ kannst du auch VBA nutzen, um die Daten programmgesteuert zu übertragen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige