Bonsoir à tous,
j'ai un petit soucis et ne maitrisant pas encore énormément VBScript, je viens vous le soumettre.
Je vais essayer d'être clair et exhaustif même si je doute d'y parvenir.
Alors voilà mon problème, j'ai un fichier Excel qui récupère les données d'un cube OLAP avec un tableau croisé dynamique. Jusqu'ici tout va bien. Néanmoins, mon soucis est qu'à partir de ce tableau, je veux générer des graphes divers et variés dans un nouveau classeur et je voudrais pour cela le faire via un VBScript.
Je vais illustrer d'une capture ça sera ptetre plus efficace et parlant :
Donc voilà, je veux, d'une part générer un nouveau classeur avec un onglet par Tableau croisé dynamique dans ma feuille source (capture) (pour ça c'est bon j'ai fait) avec les feuilles nommées du contenu du champ Geographie de mes TCD (par contre là je bloque) et d'autre part générer des graphes à partir de ces TCD (et là j'ai pas encore réellement de piste).
Ci-joint une capture du classeur que je veux obtenir en résultat :
Et enfin le code que j'ai déjà fait, et qui donc me génère un nouveau calsseur avec le nombre de feuilels quej e veux mais je n'arrive pas à récupérer le contenu de mes champs Geographie de mes tableaux croisés dynamiques et j'ai aps de pistes pour les graphes :
Voilà j'espère que ça sera assez clair, sinon n'hésitez pas à me le dire j'essaierais d'être plus explicite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 Option Explicit ' Nom et chemein du template Dim tpl, fic Set fic = "monfichiersource.xls" Set tpl = "monfichiergénéré.xls" ' Procédure chargée de générer le template "Sexe-Progress" Private Sub createTemplate() ' Déclaration des variables utilisées Dim xapp ' variable de création de l'objet Dim wb ' objet correspondant au classeur Sexe-Progress Dim i ' compteur de parcours des feuilles du nouveau classeur Dim j ' compteur de parcours des pivots du classeur TBB... Dim xchart ' variable de création du graphique Sexe-Progress Dim pvt ' variable de lecture de pivotTable Dim field ' variable de lecture des champs des pivots ' on instancie un nouvel objet Excel Set xapp = WScript.CreateObject("Excel.Application") xapp.Visible = True xapp.DisplayAlerts = False ' on créé du nouveau classeur Sexe-Progress set wb = xapp.Workbooks.Add ' 20 on ouvre le fichier TBB xapp.WorkBooks.Open(fic) ' on vérifie si le classeur créé comporte le bon nombre de feuilles (à savoir un par pays d'étude dans TBB) If wb.WorkSheets.Count < xapp.WorkSheets(5).PivotTables.Count Then For i = wb.Worksheets.count To xapp.WorkSheets(5).PivotTables.Count wb.Worksheets.Add Next End If ' 30 on renomme les feuilles du classeur par les noms des pays d'étude For j = 1 To xapp.WorkSheets(5).PivotTables.Count Set pvt = xapp.WorkSheets(5).PivotTables(j) Set field = pvt.PivotFields(6) ' MsgBox pvt.GetData("Geographie").Value ' on change le nom de la feuille par le nom du pays étudié ' wb.Worksheets(j).Name = pvt.GetData("Geographie").Value wb.Worksheets(j).Name = pvt Next ' on sauvegarde le fichier généré wb.SaveAs(tpl) xapp.DisplayAlerts = True End Sub
Merci d'avance à ceux qui auront le courage de m'aider.
Partager