Hoi allemaal,
Via VBA wil ik graag een macro gebruiken om een draaitabel te maken of updaten.
Tot nu toe ben ik zo ver dat hij apart van elkaar een oude draaitabel verwijderd en ook een nieuwe kan maken.
Ik krijg ze alleen niet samen in een macro. Ik krijg steeds foutmelding 91 tijdens het uitvoeren (Objectvariabele of blokvariabele With is niet ingesteld).
De volgende code heb ik gebruikt (grote delen zijn van internet gehaald), de foutmelding komt bij het dik gedrukte deel te staan:
Sub Draaitabel()
'Declare Variables
Dim WB As Workbook
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
Set PSheet = Worksheets("PivotTable")
Set DSheet = Worksheets("Data")
Set WB = ThisWorkbook
For Each PSheet In ActiveWorkbook.Worksheets
For Each PTable In PSheet.PivotTables
PTable.TableRange2.Clear
Next PTable
Next PSheet
'Define Data Range
LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)
'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange)
Set PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _
TableName:="Tabel")
'PSheet.Range("A1"), TableName:="Tabel")
With PTable
With .PivotFields("Year")
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields("Month")
.Orientation = xlRowField
.Position = 2
End With
'Insert Column Fields
With .PivotFields("Zone")
.Orientation = xlColumnField
.Position = 1
End With
'Insert Data Field
With .PivotFields("Amount")
.Orientation = xlDataField
.Position = 1
.Function = xlSum
.NumberFormat = "#,##0"
.Name = "Revenue "
End With
End With
End Sub
Wie kan en wil mij helpen?
Met vriendelijke groet,
Martijn
Via VBA wil ik graag een macro gebruiken om een draaitabel te maken of updaten.
Tot nu toe ben ik zo ver dat hij apart van elkaar een oude draaitabel verwijderd en ook een nieuwe kan maken.
Ik krijg ze alleen niet samen in een macro. Ik krijg steeds foutmelding 91 tijdens het uitvoeren (Objectvariabele of blokvariabele With is niet ingesteld).
De volgende code heb ik gebruikt (grote delen zijn van internet gehaald), de foutmelding komt bij het dik gedrukte deel te staan:
Sub Draaitabel()
'Declare Variables
Dim WB As Workbook
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
Set PSheet = Worksheets("PivotTable")
Set DSheet = Worksheets("Data")
Set WB = ThisWorkbook
For Each PSheet In ActiveWorkbook.Worksheets
For Each PTable In PSheet.PivotTables
PTable.TableRange2.Clear
Next PTable
Next PSheet
'Define Data Range
LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)
'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange)
Set PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _
TableName:="Tabel")
'PSheet.Range("A1"), TableName:="Tabel")
With PTable
With .PivotFields("Year")
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields("Month")
.Orientation = xlRowField
.Position = 2
End With
'Insert Column Fields
With .PivotFields("Zone")
.Orientation = xlColumnField
.Position = 1
End With
'Insert Data Field
With .PivotFields("Amount")
.Orientation = xlDataField
.Position = 1
.Function = xlSum
.NumberFormat = "#,##0"
.Name = "Revenue "
End With
End With
End Sub
Wie kan en wil mij helpen?
Met vriendelijke groet,
Martijn