Microsoft Excel

Herbers Excel/VBA-Archiv

Datenschnitt für PivotTabelle per Button

Betrifft: Datenschnitt für PivotTabelle per Button von: Silas
Geschrieben am: 13.08.2020 13:35:22

Hallo Zusammen,

ich kenne VBA erst seit einer Woche und die Lösungsvorschläge durch meine Internetrecherche helfen auch nicht weiter.
Deswegen sieht der Code in meiner Beispieldatei wahrscheinlich ziemlich komisch aus.
Ich hoffe Ihr könnt mir weiterhelfen.
In meiner Liste soll per Button sich eine PivotTabelle erstellen, auf Basis von der dynamischen Tabelle "AlleRechnungen" (In diese Tabelle werden schon seit mehreren Jahren die Rechnungen eingetragen).
Das funktioniert soweit auch schon sehr gut.
Jetzt soll sich zusätzlich zu der PivotTabelle noch ein Datenschnitt öffnen.
Mein Problem: In dem Arbeitsblatt wird jedes Jahr eine neue PivotTabelle erstellt, mit einem jeweiligen Datenschnitt der alle Rechnungen aus dem jeweiligen Jahr filtert.
Wenn ich allerdings das durch mein Makro erstellen lassen möchte, wird ein Fehler gemeldet, da ja der SlicerCache schon einmal verwendet wurde.
Egal wie ich versuche das mit einer Variable o.ä. zu "verallgemeinern", dass es jedes Jahr aufs Neue wieder funktioniert, schaffe ich leider nicht.

Als Ansatz hier mein bisheriger Code-Ausschnitt:

'Datenschnitt für die PivotTabelle einfügen (mit Infobox), positionieren und fixieren

SlicerName = InputBox("Bitte geben Sie das Jahr für den neuen Datenschnitt ein.", "Jahr für den Datenschnitt")

ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.PivotTables(pivotName), "Jahr"). _
Slicers.Add ActiveSheet, , (SlicerName), (SlicerName), 188.25, 639.75, 144, 198.75
ActiveSheet.Shapes.Range(Array(SlicerName)).Select

With ActiveSheet.Shapes(SlicerName)
.Height = 155.905511811
.Width = 77.9527559055
End With

ActiveSheet.Shapes(SlicerName).IncrementLeft 877.5
ActiveSheet.Shapes(SlicerName).IncrementTop -136.5
ActiveWorkbook.SlicerCaches("Datenschnitt_Jahr2").Slicers(SlicerName). _
DisableMoveResizeUI = True

ActiveSheet.Shapes(SlicerName).LockAspectRatio = msoTrue

Zur Datei: https://www.herber.de/bbs/user/139610.xlsm

Betrifft: AW: Datenschnitt für PivotTabelle per Button
von: fcs
Geschrieben am: 14.08.2020 12:13:12

Hallo Silas,

mache dir das Leben einfacher und arbeite bei den Pivots für die einzelnen Jahre ohne Datenschnitt.

Füge im Pivot-Bericht im Bereich "Filter" zusätzlich das Feld "Jahr" ein. Da sich der Wert ja nicht ändert muss er nur einmalig auf das entsprechende Jahr gesetzt werden - damit das funktioniert muss mindestens eine Datenzeile für das Jahr in der Liste der Rechnungen vorhanden sein.

Ausserdem ist es zur Bedienung einfacher, wenn da +-Zeichen der Gliederung hier links von den Daten steht. Kann man über das Menue --%gtDaten-->Gliederung einstellen.

Ich hab deine Tabelle und das Makro zum Erstellen des Pivot-Berichtes in diese Richtung angepasst und dabei dein Makro auch etwas aufgeräumt.
https://www.herber.de/bbs/user/139637.xlsm

LG
Franz

Betrifft: AW: Datenschnitt für PivotTabelle per Button
von: Silas
Geschrieben am: 14.08.2020 13:30:42

Hi Franz,

deine Lösung ist tatsächlich viel einfacher.
Obwohl ich mit so einem Filter schon zu tun hatte, ist der mit wohl durchgegangen, weil ich mich zu sehr auf den Cache vom Datenschnitt konzentriert habe.

VIELEN VIELEN DANK für die Hilfe.

Ich wünsche alles Gute!

LG
Silas