VBA - EXCEL (tableau croisé dynamique)
Bonjour, j'aimerais créer une macro qui se charge de créer un tableau croisé dynamique.
Voici mon code :
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
|
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'O2C22 Daily CheckList'!R1C1:R557C31").CreatePivotTable TableDestination:="" _
, TableName:="Tableau croisé dynamique"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique").SmallGrid = False
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields( _
"ORACLE ITEM CODE")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields( _
"ORDERED ITEM")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields("LOT")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields( _
"SHIPPED QUANTITY")
.Orientation = xlDataField
.Position = 1
End With
Application.CommandBars("PivotTable").Visible = False
ActiveSheet.PivotTables("Tableau croisé dynamique").PivotSelect _
"'ORACLE ITEM CODE'[Tous;Somme]", xlDataAndLabel
Selection.Delete
ActiveSheet.PivotTables("Tableau croisé dynamique").PivotSelect _
"'ORDERED ITEM'[Tous;Somme]", xlDataAndLabel
Selection.Delete |
Tout se passe bien jusqu'à la ligne :
Code:
1 2 3
|
ActiveSheet.PivotTables("Tableau croisé dynamique").PivotSelect _
"'ORACLE ITEM CODE'[Tous;Somme]", xlDataAndLabel |
Là, j'ai un message d'erreur :
Citation:
Erreur d'exécution '1004':
La formule est incomplète. Vérifiez qu'un crochet de fin ] ne manque pas.
En fait cette ligne correspond à la sélection dans le tableau des lignes "somme" que l'on peut masquer à l'aide du clic droit -> masquer
Je dois préciser que j'ai créé une macro "automatique" donc le code est généré automatiquement.
Merci pour votre aide.
j'ai trouvé une autre réponse
il suffit de remplacer [Tous;Somme]
par [All;Total]
dans la macro VBA
j'ai essayé cette solution parce que la solution d'avant n'a pas fonctionné avec moi. Peut etre parce que j'utilise EXCEL 2000