VBA - Excel - Créer tableau croisé dynamique
Résolu
Phoenellion
Messages postés
131
Statut
Membre
-
deepsoul94 -
deepsoul94 -
Bonjour,
c'est encore le débutant !!
j'ai besoin de créer un TCD par macro, et comme je ne connais pas le code correspondant, j'ai fait simple : j'ai enregistré la création du tableau avec l'enregistreur de macro, et là, ô surprise ?!
si j'exécute la macro enregistrée sans même la modifier, je me prends un message d'erreur :
voici le code enregistré :
et le message d'erreur que ça me renvoi :
"Erreur '5' -> Argument ou appel de procédure incorrect"
en gras la zone repérée par le débogueur. avec la flèche sur la dernière ligne du paragraphe
Une idée ?
Merci !
c'est encore le débutant !!
j'ai besoin de créer un TCD par macro, et comme je ne connais pas le code correspondant, j'ai fait simple : j'ai enregistré la création du tableau avec l'enregistreur de macro, et là, ô surprise ?!
si j'exécute la macro enregistrée sans même la modifier, je me prends un message d'erreur :
voici le code enregistré :
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"DC_DetFact!R1C1:R309008C3", Version:=xlPivotTableVersion14). _
CreatePivotTable TableDestination:="Feuil11!R3C1", TableName:= _
"Tableau croisé dynamique4", DefaultVersion:=xlPivotTableVersion14
Sheets("Feuil11").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("NART")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique4").PivotFields("QTE"), "Somme de QTE", _
xlSum
End Sub
et le message d'erreur que ça me renvoi :
"Erreur '5' -> Argument ou appel de procédure incorrect"
en gras la zone repérée par le débogueur. avec la flèche sur la dernière ligne du paragraphe
Une idée ?
Merci !
1 réponse
-
Bonsoir,
C'est trés curieux car sur mon Excel ce n'est pas du tout la syntaxe, la methode de création est Add et xlPivotTableVersion14 donne une erreur.
La syntaxe qui fonctionne est la suivante :
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"DC_DetFact!R1C1:R309008C3").CreatePivotTable TableDestination:="Feuil11!R3C1", TableName:= _
"Tableau croisé dynamique4", DefaultVersion:=xlPivotTableVersion10
A+
Cordialement,-
-
Le fait que cela ne marche pas quand tu lance la macro qu'Excel vient de créer en utilisant le macro recorder vient du fait que dans la macro Excel crée une nouvelle feuille et ensuite envoie le tableau croisé dans cette feuille (renseigné dans TableDestination) que Excel définie par son nom, (Ex Sheets(23).
Or si tu relances la macro qui vient d'être créé, Excel recré une nouvelle feuille (qui sera par défaut si on continue mon exemple Sheets(24) mais ne modifie pas le code et TableDestination restera Sheets(23).
Il faut donc de changer le code manuellement pour espérer que cela marche
C'est en tout cas comme cela que j'ai résolu mon problème de mon coté.
Cordialement
-