VBA: Variable SourceData in Pivot

03/09/2009 - 11:37 von Dirk Schuster | Report spam
Hallo zusammen,

ich habe ein Makro, welches eine Pivot-Tabelle erstellt:

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=
"Tabelle1!R1C1:R20000C6").CreatePivotTable TableDestination:="",
TableName:="PivotTable1"

Spàter füge ich dann die einzelnen Markmale in die Pivot-Tabelle ein:

With ActiveSheet.PivotTables("PivotTable1")
.PivotFields("a").Orientation = xlRowField
.PivotFields("b").Orientation = xlRowField
...

So weit, so gut. Ich möchte allerdings die SourceData variabel
gestalten: Das Tabellenblatt wird der Prozedur übergeben und der Range
wird per Variable bestimmt

... SourceData:=Tabellenblatt!Range(cells(1,1),cells(variable,6).Create ...

Wie mache ich das? Ohne die Angabe des Tabellenblattes gibt es beim
Einfügen des zweiten Merkmales (hier: "b") eine Fehlermeldung.

Gruß,
Dirk
 

Lesen sie die antworten

#1 Andreas Killer
03/09/2009 - 11:51 | Warnen spam
On 3 Sep., 11:37, Dirk Schuster wrote:

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:>     "Tabelle1!R1C1:R20000C6").CreatePivotTable TableDestination:="",
TableName:="PivotTable1"


...
gestalten: Das Tabellenblatt wird der Prozedur übergeben und der Range
wird per Variable bestimmt
Wie mache ich das? Ohne die Angabe des Tabellenblattes gibt es beim
Einfügen des zweiten Merkmales (hier: "b") eine Fehlermeldung.


Probiers mal so.

Andreas.

Sub AddPivot(R As Range)
ActiveWorkbook.PivotCaches.Add( _
SourceType:=xlDatabase, _
SourceData:=R.Address).CreatePivotTable _
TableDestination:="", TableName:="PivotTable1"
End Sub

Sub Main()
Dim R As Range
Set R = Sheets("Tabelle1").Range("A1:F20000")
AddPivot R
End Sub

Ähnliche fragen