schöne grüße von chatgpt. vielleicht stimmt dessen Erklärung sogar. Probiers aus.
Der Code enthält einige Probleme, die eine Fehlermeldung verursachen könnten. Ich sehe insbesondere zwei mögliche Fehlerquellen:
-
Doppelte Methode .Create bei der Pivot-Cache-Erstellung: In diesem Code wird die .Create-Methode zweimal hintereinander aufgerufen, was zu einem Fehler führt. Die .CreatePivotTable-Methode sollte direkt auf den PivotCache angewendet werden, nicht auf das Ergebnis von .Create.
-
Fehlender Worksheet-Objektbezug für Rows.Count und Columns.Count: Wenn Rows.Count und Columns.Count verwendet werden, sollte sichergestellt sein, dass sie sich explizit auf ein bestimmtes Arbeitsblatt beziehen, da ActiveSheet.Rows.Count verwendet wird, wenn kein Blatt angegeben wird. In deinem Code ist dies zwar für Tabelle8 impliziert, könnte jedoch explizit angegeben werden, um Missverständnisse zu vermeiden.
Hier ist der korrigierte Code:
Dim PCache As PivotCache
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
' Finde die letzte Zeile und Spalte in Tabelle8
LastRow = Tabelle8.Cells(Tabelle8.Rows.Count, 1).End(xlUp).Row
LastCol = Tabelle8.Cells(1, Tabelle8.Columns.Count).End(xlToLeft).Column
' Bereich für Pivot-Tabelle festlegen
Set PRange = Tabelle8.Cells(1, 1).Resize(LastRow, LastCol)
' Pivot-Cache erstellen
Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange)
' Pivot-Tabelle auf Grundlage des Pivot-Caches erstellen
PCache.CreatePivotTable TableDestination:=Tabelle9.Cells(20, 2), TableName:="PivotTableIRRBB"
Erklärung:
- Die .Create-Methode wird nur einmal aufgerufen, und anschließend wird die CreatePivotTable-Methode auf dem PCache-Objekt verwendet.
- Tabelle8.Rows.Count und Tabelle8.Columns.Count stellen sicher, dass die letzte Zeile und Spalte im Kontext von Tabelle8 berechnet wird.
Der Code sollte jetzt fehlerfrei laufen und eine Pivot-Tabelle erstellen.
|