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

Forumthread: Pivot-Tabellen

Pivot-Tabellen
08.10.2020 13:59:45
Jan
Hallo Forum,
ich habe folgendes Problem, bei dem ich hoffe, dass ihr mir helfen könnt:
Und zwar...
ich möchte per VBA aus meiner Hauptdatei eine Pivot-Tabelle in einer zweiten Datei ansprechen.
Soweit auch kein Problem.
Die Pivot-Tabelle allerdings enthält nur 2 Kategorien. Einmal das Jahr 2019 und das Jahr 2020.
Wähle ich manuell zwischen den beiden hin und her, so erscheinen mir Daten für das ausgewählte Jahr.
Die Daten sind für das Jahr 2019 und 2020 innerhalb des selben Bereiches.
Will ich nun aber per VBA, dass erst das Jahr 2020 angeklickt wird und danach das Jahr 2019 kommt folgende Fehlermeldung:
Ein PivotTable-Bericht kann einen anderen PivotTabel-Bericht nicht überlappen.
Das verstehe ich auch soweit, denn es können ja nicht gleichzeitg verschiedene Daten in dem selben Bereich/in den selben Zellen angezeigt werden.
Jedoch will ich das ja auch gar nicht. Dies soll ja nacheinander passieren und nicht gleichzeitig, doch leider kriege ich das nicht hin, weil anscheinend die VBA Ansteuerung der Pivot-Tabelle sagt: "wähle beide Kategorien zusammen aus"
Code:
With ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr")
.SlicerItems("2020").Selected = True
.SlicerItems("2019").Selected = False
.SlicerItems("(Leer)").Selected = False
End With
With ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr")
.SlicerItems("2019").Selected = True
.SlicerItems("2020").Selected = False
.SlicerItems("(Leer)").Selected = False
End With
Vielen Dank schon mal für eure Ideen!
LG
Jan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Pivot-Tabellen
08.10.2020 15:17:31
fcs
Hallo Jan,
Grundsätzlich funktioniert dein Makro - ich hab mal etwas einfaches Beispiel nachgebaut.
Die Fehlermeldung kann eigentlich nur auftreten, wenn auf einem Tabellenblatt 2 Pivot-Tabellenberichte vorhanden sind oder angelegt werden sollen.
Wenn sich beim Anlegen des 2. Berichtes oder durch Änderung der Filtereinstellungen die Datenbereiche der beiden Pivot-Berichte überlagern würden, dann wird die von dir zitierte Fehlermeldung angezeigt.
Mich wundert jetzt nur, dass es keinen Fehler gibt, wenn du die Slicerwerte manuell änderst.
Lade, wenn möglich in einer ZIP-DAtei abgespeckte Versionen deiner beiden Dateien hoch.
Datei1 = Datei mit dem Makro, dass die andere Datei öffnet/aktiviert und die Slicer ändert.
Datei2 = Datei mit Beispiel-Daten, Pivottabellenbericht(en) und den SlicerFelden.
LG
Franz
Anzeige
AW: Pivot-Tabellen
08.10.2020 16:13:42
Yal
Hallo Jan,
Ganz nach Intuition (nicht geprüft):
zuerst die nicht mehr gewünschten Felder ausschalten (= False), dann die gewünschte einschalten (= True)
Dann wird die Pivottabelle nicht zuerst wachsen (genau da entsteht die Fehlermeldung) und dann schrumpfen, sondern umgekehrt.
Viel Erfolg
Yal
Anzeige
AW: Pivot-Tabellen
09.10.2020 06:53:54
Jan
Hallo zusammen!
Der Tipp von Yal hat mir super weitergeholfen!
Der Code sieht nun wie folgt aus:
ActiveSheet.PivotTables("PivotTable1").PivotFields("Name").ClearAllFilters
With ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr")
.SlicerItems("(Leer)").Selected = True
.SlicerItems("2020").Selected = False
.SlicerItems("2019").Selected = False
End With
With ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr")
.SlicerItems("2020").Selected = True
.SlicerItems("2019").Selected = False
.SlicerItems("(Leer)").Selected = False
End With
With ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr")
.SlicerItems("(Leer)").Selected = True
.SlicerItems("2020").Selected = False
.SlicerItems("2019").Selected = False
End With
With ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr")
.SlicerItems("2019").Selected = True
.SlicerItems("2020").Selected = False
.SlicerItems("(Leer)").Selected = False
End With
Ich musste sogesehen die Kategorie "Leer" ansteuern, bevor ich das andere Jahr ansteuere.
Also erst alle Auswahlen wegnehmen und dann die gewünschte vornehmen.
Vielen Dank euch!
VG
Jan
Anzeige
AW: Pivot-Tabellen
09.10.2020 09:30:33
Yal
Hallo Jan,
Du hast wahrscheinlich dein Code so weit gekürzt, dass nicht mehr verständlich ist.
Warum funktioniert sowas nicht?:
With ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr")
.SlicerItems("2019").Selected = False
.SlicerItems("2020").Selected = False
.SlicerItems("(Leer)").Selected = False
.SlicerItems("2019").Selected = True
End With

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Effektive Nutzung von Pivot-Tabellen in Excel


Schritt-für-Schritt-Anleitung

  1. Pivot-Tabelle erstellen: Wähle deinen Datenbereich aus und gehe zu Einfügen > PivotTable. Wähle aus, ob du die Pivot-Tabelle in einem neuen oder bestehenden Arbeitsblatt platzieren möchtest.

  2. Datenfelder hinzufügen: Ziehe die gewünschten Felder in die Bereiche „Zeilen“, „Spalten“ und „Werte“, um deine Daten zu strukturieren.

  3. Slicer hinzufügen: Gehe zu PivotTable-Analyse > Einfügen > Slicer, um Filter für deine Pivot-Tabelle zu erstellen.

  4. VBA zur Steuerung verwenden: Um die Slicer per VBA zu steuern, nutze den folgenden Code:

    With ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr")
       .SlicerItems("(Leer)").Selected = True
       .SlicerItems("2020").Selected = False
       .SlicerItems("2019").Selected = False
    End With
  5. Fehlerbehandlung: Achte darauf, dass du keine zwei Pivot-Tabellen auf demselben Arbeitsblatt überlappen lässt, da sonst die Fehlermeldung „Ein PivotTable-Bericht kann einen anderen PivotTable-Bericht nicht überlappen“ erscheint.


Häufige Fehler und Lösungen

  • Fehler: „Ein PivotTable-Bericht kann einen anderen PivotTabel-Bericht nicht überlappen“:

    • Ursache: Es gibt bereits eine Pivot-Tabelle im definierten Bereich.
    • Lösung: Überprüfe, ob der Datenbereich für die neue Pivot-Tabelle mit einer bestehenden überlappt.
  • Fehler: „Excel konnte die Pivot-Tabelle mit dem Namen nicht aktualisieren“:

    • Ursache: Möglicherweise sind die Filtereinstellungen inkorrekt.
    • Lösung: Setze die Slicer-Items zurück, bevor du neue auswählst.

Alternative Methoden

  • Manuelle Anpassung der Slicer: Statt VBA kannst du auch die Slicer manuell anpassen, um die gewünschten Daten zu filtern. Dies ist besonders nützlich, wenn du keine Programmierkenntnisse hast.

  • Verwendung von Segmenten: Segmentierungen bieten eine benutzerfreundliche Möglichkeit, Daten zu filtern und können direkt über die Pivot-Tabelle hinzugefügt werden.


Praktische Beispiele

  • Jahresvergleich: Wenn du einen Jahresvergleich erstellen möchtest, füge die Jahre als Slicer hinzu und wechsle zwischen den Jahren, um die entsprechenden Daten anzuzeigen.

  • Dynamische Berichte: Erstelle einen Bericht, der sich dynamisch anpasst, indem du Slicer für unterschiedliche Kategorien verwendest. So kannst du durch das Auswählen und Abwählen von Slicer-Items verschiedene Datenansichten schnell generieren.


Tipps für Profis

  • Komplexe Pivot-Tabellen: Vermeide es, mehrere Pivot-Tabellen auf demselben Blatt zu platzieren, da dies dazu führen kann, dass Excel meldet, „eine Tabelle kann keine andere Tabelle überlappen“.

  • Slicer-Kombinationen: Experimentiere mit verschiedenen Kombinationen von Slicer-Items, um umfassende Analysen zu erstellen.

  • Makros nutzen: Automatisiere häufige Aufgaben mit VBA, um Zeit zu sparen und Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Warum kann ich keine zwei Pivot-Tabellen auf demselben Blatt haben?
Weil ein PivotTable-Bericht einen anderen nicht überlappen kann, was zu Konflikten und Fehlermeldungen führt.

2. Wie behebe ich den Fehler „Excel Text Zelle nicht überlappen“?
Stelle sicher, dass die Zellen, die du für deine Pivot-Tabelle verwendest, nicht durch andere Objekte oder Daten blockiert sind.

3. Was tun, wenn die Pivot-Tabelle nicht aktualisiert wird?
Überprüfe die Datenquelle und die Slicer-Einstellungen. Möglicherweise musst du die Slicer-Items zurücksetzen, bevor du die Pivot-Tabelle aktualisierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige