Excel 2007 Laufzeitfehler 5 bei CreatePivotTable
24.03.2014 15:03:58
Stefan
wollte mich mit einem Problem an Euch wenden und hoffe, ihr könnt mir weiterhelfen.
Ich habe ein Excel-Arbeitsblatt, auf welchem in einer Pivottabelle Arbeitsergebnisse von acht verschiedenen Projekten dargestellt werden sollen. Auf dem Auswertungs-Arbeitsblatt gibt es für die jeweiligen Projektergebnisse eigene Ziel-Ranges.
Die Crux an der Sache: Die Rohdaten sind in verschiedenen Excel-Files (.xlsm) verteilt. Um das Ganze möglichst flexibel zu halten, muss ich für den Datenzugriff Variablen verwenden (Quellmappe, Zielmappe, Quell-Range, Ziel-Range usw.).
Das folgende Programm hat keinerlei Probleme, aus diesen Variablen einen Pivot-Cache zusammenzuzimmern. Bei der Zeile, in welcher die Pivot-Tabelle erzeugt wird, wirft mir der Compiler den Laufzeitfehler 5:Ungültiger Prozeduraufruf oder ungültiges Argument.
Meine Vermutung ist, dass der Compiler mit dem Parameter TableDestination ein Problem hat, da die Ziel-Range durch eine Variable (zielbereich) ausgedrückt wird. Bei der Cache-Erstellung habe ich aber auch eine Quell-Range in einer Variablen (quellbereich) hinterlegt, ohne einen Fehler auszulösen. Wo zum Henker ist das Problem?! Ich freue mich über Eure Tipps / Einschätzungen, ich bin nämlich am Verzweifeln :)
Hier der Code:
Sub makepivot()
Dim activeWB As Workbook
Dim sourceWB As Workbook
Dim quellblatt As Worksheet
Dim zielblatt As Worksheet
Dim quellbereich As String
Dim zielbereich As String
Dim sPath As String
sPath = "C:\Users\BUS7LR\Desktop\Excel Makros\ASPECSS_2013_1_bis_12.xlsm"
quellbereich = "H2:J16"
zielbereich = "B2:D14"
Set activeWB = ThisWorkbook
Set sourceWB = Application.Workbooks.Open(sPath)
Set quellblatt = sourceWB.Worksheets(1)
Set zielblatt = activeWB.Worksheets(1)
Dim pcache As PivotCache
Dim ptable As PivotTable
Set pcache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase,
SourceData:=quellblatt.Range(quellbereich))
Set ptable = pcache.CreatePivotTable(TableDestination:=zielblatt.Range(zielbereich), TableName:= _
"PivotTable1", DefaultVersion:=xlPivotTableVersion12)
End Sub
n. B.: bitte nicht an den fehlenden Umbruchszeichen _ stören; im Orignalcode habe ich eine Zeile pro Anweisung.