Mise en forme automatique de graphique

baka-rcl

XLDnaute Nouveau
Bonjour,

Je cherche à automatiser, via un code VBA, la mise en forme homogène de divers graphes de type "camembert" : il s'agit dans un premier temps (et ce sera déjà pas mal!) de définir les couleurs de remplissage des différents secteurs en fonction du nom des catégories considérées. Je précise que les catégories varient d'un graphe à l'autre (nombre, interclassement,...), ce qui m'empêche de résoudre mon problème par la mise en forme initiale des graphes.

En cherchant par-ci par-là sur le net, j'ai fini par trouver un début de réponse dans le fichier ci-joint. Il fait exactement ce que je recherche, mais pour un graphe type "courbe".
J'ai tenté d'adapter le code sous VBA pour le rendre opérationnel sur mes graphes "camembert" mais je n'y arrive pas. Le premier point de blocage que j'ai identifié est que dans mes graphes les conditions s'appliquent sur des catégories de données, alors que dans le cas initial ce sont vraisemblablement les séries de données qui sont testées...

Le code initial est le suivant :

Sub CouleurSeries()
Dim MesSeries As Series
With ActiveChart
For Each MesSeries In .SeriesCollection
Select Case MesSeries.Name

Case "astuces"
MesSeries.Border.ColorIndex = 9
MesSeries.Border.Weight = xlThick
MesSeries.MarkerStyle = xlMarkerStyleSquare
MesSeries.MarkerBackgroundColorIndex = 9
MesSeries.MarkerForegroundColorIndex = 9
MesSeries.MarkerSize = 10

Case "blog"
MesSeries.Border.ColorIndex = 33
MesSeries.Border.Weight = xlThick
MesSeries.MarkerStyle = xlMarkerStyleSquare
MesSeries.MarkerBackgroundColorIndex = 33
MesSeries.MarkerForegroundColorIndex = 33
MesSeries.MarkerSize = 10


Case "autres"
MesSeries.Border.ColorIndex = 16
MesSeries.Border.Weight = xlThick
MesSeries.MarkerStyle = xlMarkerStyleSquare
MesSeries.MarkerBackgroundColorIndex = 16
MesSeries.MarkerForegroundColorIndex = 16
MesSeries.MarkerSize = 10

Case "global"
MesSeries.Border.ColorIndex = 46
MesSeries.Border.Weight = xlThick
MesSeries.MarkerStyle = xlMarkerStyleSquare
MesSeries.MarkerBackgroundColorIndex = 46
MesSeries.MarkerForegroundColorIndex = 46
MesSeries.MarkerSize = 10


End Select
Next
End With
End Sub

Merci beaucoup pour votre aide!
 

Pièces jointes

  • graph_cond03.xls
    43.5 KB · Affichages: 29

Modeste

XLDnaute Barbatruc
Re : Mise en forme automatique de graphique

Bonjour baka-rcl,

Je ne suis pas un spécialiste des graphiques, mais je me dis trois choses:
- pourquoi ne pas mettre en forme un premier graphique, le copier-coller et modifier la source des données?
- on peut aussi enregistrer comme modèle ce premier graphique, pour le réutiliser ensuite, me semble-t-il?
- si une macro s'avère incontournable, l'enregistreur de macros ne donnerait pas les bases de la syntaxe à utiliser?

Si aucune de ces pistes n'est utilisable, le mieux serait de fournir un exemple des données pour 2 graphiques en joignant le graphique tel qu'il devrait être (en secteurs donc, plutôt qu'en courbes) pour un de tes 2 tableaux. Sur base de cet exemple, précise ce qui devrait être similaire dans le graphique qui serait créé sur base des autres données de ton exemple.
 

baka-rcl

XLDnaute Nouveau
Re : Mise en forme automatique de graphique

Bonjour et merci pour cette réponse.

En fait, les différents graphiques sont générés par différentes macros sur différentes feuilles de calcul. Je pourrais envisager d'imposer un modèle et notamment le jeu de couleurs de base, mais le problème est que les données changent d'un cas à l'autre : les graphes sont tracés à partir de tableaux croisés dynamiques potentiellement très différents d'une feuille de calcul à l'autre.

En PJ un exemple très basique dans lequel l'objectif est de faire passer le client 4 automatiquement en couleur violette pour l'année 2013.
NB : dans ce cas la solution parait évidente, mais comme j'ai essayé de l'expliquer, dans ma situation il me parait impossible de lier la forme des différents graphes

Au final, mon problème revient à répondre à la question : quelle est la syntaxe VBA d'un nom de catégorie de graphique "camembert". Avec cette info je serai capable de m'en sortir a priori!

Merci
 

Pièces jointes

  • Exemple.xls
    59 KB · Affichages: 41
  • Exemple.xls
    59 KB · Affichages: 44
  • Exemple.xls
    59 KB · Affichages: 50

Claude5

XLDnaute Occasionnel
Re : Mise en forme automatique de graphique

Bonjour à tous,

j'utilise pas mal de graphiques dans mon boulot et je procède à des C/C. Par contre dans votre exemple pourquoi le client 4 change t-il de couleur???? Si vous devez suivre une progression depuis 2000,pas facile de faire des statistiques!
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote