Perte des données graphique lors d'un boucle sur TCD

Bonjours à tous,

J'espère que l'un de vous pourra m'aider.

J'ai écris une macro VBA me permettant de réaliser un TCD avec comme filtre principale, le numéro de compteur électrique.

Au départ de ce TCD, je souhaite réaliser un graphique 3D empilé représentant pour chaque numéro de compteur, sa consommation pour les année 2014 et 2015 par exemple.

J'y arrive en bouclant sur les items de mon filtre principal.

Mon problème :

A chaque nouveau graphique créé en fonction du numéro de la valeur de l'item sélectionné, le graphique précédent prend les vakeurs de celui qui vient d'être créé. Au bout de 9 occurance, je me retrouve donc avec 9 graphique identique (((

Ma question :

Est-il donc possible de réaliser au départ d'un TCD plusieurs graphiques sur des onglets différents, en fonction d'un indice pivot contenant plusieurs items ?

Solution trouvée mais loin d'être idéale

Sauvegarder au fur et a mesure de leur création, les graphiques en image gif ou jpg

Merci de jetter un oeuil sur le code ci-dessous.

D'avance merci pour votre réponse.

Bien à vous,

'Set objChart = ActiveSheet

 With wshTCD
 i = 1
   For Each pvtItem In wshTCD.PivotTables("TCD_EAN").PivotFields("EAN").PivotItems
                wshTCD.Select
                strPvtFldItem = pvtItem
                With PvtTBL.PivotFields("EAN")
                    .CurrentPage = strPvtFldItem
                End With

            'ActiveWorkbook.Charts.Add after:=Worksheets("TCD automatique"), Count:=1

            Set objChart = Charts.Add

            Set objChart = ActiveSheet

            nomGraph = "Graph " & i

            Set rngChart = PvtTBL.TableRange2

            With objChart
                 .SetSourceData rngChart
                 .Name = nomGraph

                .ChartType = xl3DColumnStacked

                .HasTitle = True

                    .ChartTitle.Text = "Evolution de la consommation " & " - " & nomGraph & " - " & "EAN" & " - " & strPvtFldItem
                    .ChartTitle.Font.Color = RGB(0, 30, 90)
                    .ChartTitle.Font.Bold = True
                    .ChartTitle.Font.Size = 14

                .Legend.Position = xlLegendPositionTop

            End With
            'oChObj.RoundedCorners = True
            'oChObj.Placement = xlfreefloatingue

           '  Solution quand quote enlevé
            'Enregistrer le graphique en image .gif ou .jpg
            'Fname = nomGraph
            'Fname = ThisWorkbook.Path & "\" & ActiveChart.Name & ".gif"
            'ActiveChart.Export Filename:=Fname, FilterName:="GIF"

               i = i + 1

              wshTCD.Select

    Next
End With

End Sub

Bonjour et bienvenu,

Je crois que tu vas être obligé de joindre un fichier.

Cdlt.

Bonjour,

Excuse moi mais comment insère-t-on un fichier ici ?

Reno


Jean-Eric,

Merci pour ta réponse, voici le fichier, je viens de trouver ou le joindre.

Je suis relativement novice ne vba, excuse donc ma syntaxe

Bien à toi

Reno

9notes.xlsx (80.69 Ko)

pardon, c'est le module 2, milles excuses

Re,

Ton fichier ne comporte pas de procédures VBA car il est enregistré en xlsx.

Et tu dois de plus préciser ta demande, car je présume que tu souhaites peut-être 3 graphiques dans 45 feuilles...

Soit créer à la volée 135 graphiques.

Cdlt.

Jean-Eric,

Je vais y arriver, enfin j'espère.

Voici, le complément d'info :

je crée un TCD appellé TCD_EAN. Mon indice pivot est le numéro EAN.

Je souhaite créé pour chauqe item un graphique sur une feuille appelée Graph 1,2,3,...

Celà, j'y arrive.

Problème :

Quand la macro crée le graph 1 sur base de l'item EAN n°1, pas de souci, elle fait le bon graphique.

Quand la macro passe à l'item n°2, elle crée bien une nouvelle feuille appelée graph2 et fait le bon graphique mais ce qu'il se passe c'est que le graphique sur la feuille graph1 se modifie pour être identique au graph 2

Et ainsi de suite jusqu'au terme de mes items.

Au final, je me retrouve donc avec 10 graphique identiques.

As-tu une idée ?


Voici le fichier xlsm, j'espère qu'il va passer finalement

13test-tcd.xlsm (288.74 Ko)

Bonjour,

Une proposition à étudier et méditer.

A te relire.

Cdlt.

Jean-Eric,

Un grand merci. Je vois que tu réalises le TCD de manière bien plus élégante que moi.

Je vais analyser ton code, je suis novice, Il s'agit là de ma deuxième macro.

Question : Est-il normal que le 2 boutons que tu as créé ne fonctionne pas ?

Je ne vois pas de code pour les graphiques, est-ce normal ?

Ci-joint, voici ce que j'ai réussi à faire hier. Celà ressemble à ce que je souhaite si ce n'est que je n'ai pas besoin d'avoir tous les onglets reprenant le TCD avec le bon item (123, 456, 789, ...),, si on peut les éviter. il s'agit de la seule solution que j'aie trouvé pour que mes graphiques conservent leur propre valeur.

Par contre, je dois créer de nouveau TCD, l'un pour le coût, l'autre pour la répartition du coût. Pour ceux-ci, je devrai, pour chaque item EAN créé un graphique. Je sosuhaite placer ses derniers sous celui représentant le cout pour chaque numéro EAN. Penses-tu que ce soit possible ?

Mon but, obtenir un rapport graphique complet pour chaque compteur, donc en réalité pour chaque site.

D'avance merci pour ta précieuse aide et pour tes réponses.

Bien toi,

10test-tcd.xlsm (199.86 Ko)
10test-tcd.xlsm (199.86 Ko)

Bonjour,

J'ai un peu de mal à te comprendre et tes 2 fichiers joints ne comportent pas autre chose que tes données source.

Pour poursuivre, il est préférable de travailler avec mon fichier joint précédemment.

Pour la création des autres TCDs, tu peux simplement lister sous forme de tableau, tes besoins(champ de page, Etiquettes de lignes, Etiquettes de colonnes, Valeurs, etc..).

A te relire.

Cdlt.

Rechercher des sujets similaires à "perte donnees graphique lors boucle tcd"