Automatisation de la mise en forme d'un graphique croisé dynamique

Bonjour à tous !

Je vous contacte aujourd'hui car je rencontre actuellement un problème avec l'utilisation de graphique croisé dynamique.

Dans mon cas, je lance une macro VBA à l'aide d'un bouton et cette macro va remplir mon classeur excel et notamment les données de Tableaux Croisés Dynamiques. A partir de ces tableaux, j'utilise des graphiques croisés dynamiques pour visualiser les différentes variables de mon système (température, débits ...)

A chaque fin de macro, j'ai rentré la commande suivante qui me permet d'actualiser mes TCD (et donc mes GCD) automatiquement :

Sheets("Feuil1").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

Cependant, la mise en forme de mes graphiques change à chaque actualisation, ce que j'aimerais éviter ! (remettre la bonne mise en forme manuellement à chaque nouveau lancement de macro serait un processus trop lourd)

En recherchant la réponse à ma question, j'ai bien vu que je ne suis pas le seul ayant rencontré ce problème mais soit les questions n'ont pas obtenu de réponse, soit je ne comprends pas la réponse, soit les réponses se focalisent sur les TCD

La solution qui m'a parue la plus intéressante parmi celles que j'ai testées est la suivante :

1) Création d'un module de classe nommé ici "EventClassModule" (notion que je ne maîtrise pas) dans lequel le code suivant est indiqué

Public WithEvents myChartClass As Chart Private Sub myChartClass_Calculate() myChartClass.ApplyCustomType ChartType:=xlUserDefined, TypeName:="Nom du fichier de mise en forme de GCD" End Sub

2) Utilisation de cette classe dans ma macro globale

Dim myClassModule As New EventClassModule Set myClassModule.myChartClass = Sheets("Graphs").ChartObjects("Graphique 1").Chart

Cependant je n'ai pas réussi à faire fonctionner cette solution (et je ne la comprends en plus pas parfaitement, ce qui n'aide pas)

Si l'un d'entre vous a déjà fait face à cette problématique et l'a résolu ou simplement si vous auvez des idées à me proposer, je suis preneur !

Merci d'avance pour votre aide,

Sacha

Bonjour

Un GCD ne perd pas son format mais si l'ordre des séries change, la personnalisation ne va plus correspondre au nouvel ordre, ce qui peut donner cette impression.

Ceci n'est pas toujours solutionné par le modèle de graphique (ChartType) car si le nombre de séries n'est pas le même que lors de la modalisation, cela ne fonctionne pas.

Sans aucun exemple concret tu as peu de chance d'obtenir une solution concrète

Bonjour Chris,

Merci de ta réponse rapide ! Et finalement, ton message m'a bien permis de résoudre mon problème

Je ne m'étais pas rendu compte que quand j'actualisais mon GCD, le TCD associé n'avait plus le même nombre de colonne que précédemment ... (dû à un changement de nom de variable non corrigé)

Du coup, j'ai recréé mon TCD avec les bons noms de variables et cette fois-ci plus de problème de mise en forme lors de l'actualisation du GCD ! C'est parfait merci beaucoup

Bonne journée à vous

Sacha

Rechercher des sujets similaires à "automatisation mise forme graphique croise dynamique"