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 :
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
Voilà j'espère que ça sera assez clair, sinon n'hésitez pas à me le dire j'essaierais d'être plus explicite.

Merci d'avance à ceux qui auront le courage de m'aider.