Ik probeer een Macro te maken waarin een draaitabel gevormd wordt op basis van de gegevens uit Blad1.
Ik heb hiervoor twee macro's:
Het aanvullen van alle data en selecteren hiervan:
En het maken van de draaitabel en de waarden hierin:
Mijn logica zegt dat ik de sourcedata op de een of andere manier zo moet krijgen dat hier iets staat als
"Basis!R4C1:R" & lastrow& & "C11"
zoals in code 1, maar ik krijg dit niet voor elkaar.
Iemand die enig idee heeft hoe ik dit voor elkaar krijg? Ik had het al opgesplitst om op basis van de selectie die ik uit code1 krijg de draaitabel aanmaak, maar hij schrijft toch de harde regels weg.
Ik heb hiervoor twee macro's:
Het aanvullen van alle data en selecteren hiervan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Sub Voorbereiding_maand()
'
' Voorbereiding_maand Macro
' Datum-Aanvullen-Selecteren
'
'
Range("D5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("D5"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 5), TrailingMinusNumbers:=True
Dim lastrow As Long
lastrow = Range("D5").End(xlDown).Row
With Range("E5:K5")
.AutoFill Destination:=Range("E5:K" & lastrow&)
End With
Range("A5:K5").Select
Range(Selection, Selection.End(xlDown)).Select
End Sub |
En het maken van de draaitabel en de waarden hierin:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| Sub Draaitabel()
'
' Draaitabel Macro
'
'
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Basis!R4C1:R339C11", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Blad1!R3C1", TableName:="Draaitabel1", DefaultVersion _
:=xlPivotTableVersion12
Sheets("Blad1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Draaitabel1").PivotFields("Af")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Draaitabel1").PivotFields("Jaar")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Draaitabel1").PivotFields("Maand")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Draaitabel1").AddDataField ActiveSheet.PivotTables( _
"Draaitabel1").PivotFields("OTC"), "Som van OTC", xlSum
ActiveSheet.PivotTables("Draaitabel1").AddDataField ActiveSheet.PivotTables( _
"Draaitabel1").PivotFields("Baxter"), "Aantal van Baxter", xlCount
ActiveSheet.PivotTables("Draaitabel1").AddDataField ActiveSheet.PivotTables( _
"Draaitabel1").PivotFields("Regulier"), "Aantal van Regulier", xlCount
ActiveSheet.PivotTables("Draaitabel1").AddDataField ActiveSheet.PivotTables( _
"Draaitabel1").PivotFields("Niet-WMG"), "Aantal van Niet-WMG", xlCount
ActiveSheet.PivotTables("Draaitabel1").AddDataField ActiveSheet.PivotTables( _
"Draaitabel1").PivotFields("Totaal"), "Som van Totaal", xlSum
End Sub |
Mijn logica zegt dat ik de sourcedata op de een of andere manier zo moet krijgen dat hier iets staat als
"Basis!R4C1:R" & lastrow& & "C11"
zoals in code 1, maar ik krijg dit niet voor elkaar.
Iemand die enig idee heeft hoe ik dit voor elkaar krijg? Ik had het al opgesplitst om op basis van de selectie die ik uit code1 krijg de draaitabel aanmaak, maar hij schrijft toch de harde regels weg.