Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1784to1788
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
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige