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