Problème avec Excel et tableau croisé dynamique
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 :
http://img296.imageshack.us/img296/5...turecy4.th.jpg
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 :
http://img76.imageshack.us/img76/727...ure2lt0.th.jpg
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:
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.