Bonjour, j'ai actuellement un souci qui me bloque dans un projet, et que j'aimerais donc voir résolu au plus vite :D
Il s'agit de la création d'un TCD dans VBA. J'ai regardé ici mais le code ne fonctionnait pas, n'ayant pas réussi à l'adapter pour mes données.
Ne connaissant pas la syntaxe relative aux TCD, j'ai enregistré une macro qui m'a donné ceci :
Seulement lors de sa ré-exécution, elle ne fonctionne pas, malgré que j'ai effacé le TCD précédemment créé (pour ne pas avoir de nom en doublon).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub Macro6() Range("A7").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Manips-Destinations Aériennes!R6C1:R240C10", Version:=xlPivotTableVersion15) _ .CreatePivotTable TableDestination:="GES-Destination par pays!R5C2", _ TableName:="Tableau croisé dynamique4", DefaultVersion:= _ xlPivotTableVersion15 Sheets("GES-Destination par pays").Select Cells(5, 2).Select End Sub
Mes questions :
=> Après quelques expérimentations de code, j'ai eu différentes erreurs : Celle qui intervient lors de l'exécution du code ci-dessus est la n°5 : "Argument ou appel de procédure incorrect".
Si je remplace PivotCaches.Create par PivotCaches.Add, j'obtiens l'erreur : "Erreur de compilation, argument nommé introuvable" avec "Version:=" surligné.
Comment faire pour que ma création de TCD s'effectue correctement ? Je ne pense pas que ce soit une procédure très compliquée pourtant, malheureusement je n'arrive pas à comprendre les erreurs.
=> Les 3 premières lignes de code sélectionnent une plage de cellules variables à partir de A7 (qui restera fixe), mais l'argument "SourceData" renvoie à la plage de cellules sélectionnées. Si la plage change de taille, la valeur de SourceData va-t-elle changer également automatiquement ?
Merci d'avance ! Je pense (j'espère !) qu'une fois la syntaxe correcte et comprise pour ce TCD, je serais en mesure de l'adapter pour les autres TCD que je dois réaliser.