Forcer les couleurs d'un graphique en fonction des données d'un tableau

NVerder

XLDnaute Nouveau
Bonjour tout le monde,

Je possède un fichiers de plus de 8000 données. Celui-ci est divisé en plusieurs ensembles.
Dans chaque ensemble, je réalise un Tableau croisé dynamique (TCD) et un graphe "camembert" associé.
Or, dans mes TCD, les intitulés de légende et le nombre de valeurs changent à chaque fois.
Donc les couleurs de mes portions de camembert changent également quelquesoit la valeur affectée.

exemple:
un tableau comporte les champs "chênes = jaune", "marronnier = vert", "frêne = bleu".
un autre tableau comportera les champs ""marronnier = jaune", "Hêtre = rouge", "feuillus durs = vert"...

Problème: je souhaite que chaque champ conserve la même couleur en fonction de sa valeur.

exemple:
marronnier = marron
hêtre = vert
chênes = jaune
....

Et ce quel que soit sa position dans le tableau.

Seul une macro pourra me sauver mais je suis hyper novice en la matière.

Pour être plus explicite je joins un fichier présentant les résultats actuels.

D'avance merci à tous pour vos réponses.:)

NVerder
 

Pièces jointes

  • Classeur exemple.xls
    19 KB · Affichages: 166
  • Classeur exemple.xls
    19 KB · Affichages: 173
  • Classeur exemple.xls
    19 KB · Affichages: 171

NVerder

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique en fonction des données d'un tableau

Bonjour à tous

vous trouverez ci-joint le code qui m'a permis de répondre à mon problème.
Il n'est sans doute pas fameux car j'ai utilisé l'éditeur de macro.
De plus, je suis débutant en VBA, il y a donc surement des lignes de codes sans intérêt.

Néanmoins j'en confie une partie au cas où d'autres personnes se trouveraient confrontées aux mêmes besoins.

Je ne suis pas non plus ingrat et ce n'est pas parce que personne n'avait répondu à ma question :mad: que je dois garder ma trouvaille pour moi.:)

Code:
Sub      Macrocouleurlegende Macro
 
   numerotableau = 3
   numerolegend = 1
    

'boucle do loop

    Do While Cells(p, 5).Value <> ""

 'la colonne de mon tableau « essences forestières » est parcourue tant qu’il n’y a pas de cellule vide
  
'si la valeur trouvée est Hêtre la couleur a appliqué dans la légende est colorindex 4
    If Cells(numerotableau, 5).Value = "Hêtre" Then
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.ChartArea.Select
    ActiveChart.Legend.Select
    ActiveChart.Legend.LegendEntries(numerolegend).LegendKey.Select
     With Selection.Border
        .Weight = xlThin
        .LineStyle = xlAutomatic
    End With
    Selection.Shadow = False
    With Selection.Interior
        .ColorIndex = 4
        .Pattern = xlSolid
    End With
    ActiveWindow.Visible = False
    End If
    

'si la valeur trouvée est Chênes la couleur a appliqué dans la légende est Colorindex 6
    If Cells(numerotableau, 5).Value = "Chênes" Then
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.ChartArea.Select
    ActiveChart.Legend.Select
    ActiveChart.Legend.LegendEntries(numerolegend).LegendKey.Select
    With Selection.Border
        .Weight = xlThin
        .LineStyle = xlAutomatic
    End With
    Selection.Shadow = False
    With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
    ActiveWindow.Visible = False
    End If

'il n’y a plus qu’a multiplier les IF THEN en fonction des essences qui peuvent être contenues dans le tableau     
   
  numerotableau = numerotableau + 1
  numerolegend = numerolegend + 1
        
   Loop


End sub

Bonne lecture à tous

Nverder
 

Charly88

XLDnaute Occasionnel
Re : Forcer les couleurs d'un graphique en fonction des données d'un tableau

Bonjour, bonsoir, personne n'aurait par hasard une solution évitant d'utiliser VBA ?
La problèmatique exposée est extrèmement fréquente et même un autiste comme Excel Office (dans ses versions récentes ? 2013 ?) devrait s'en rendre compte.


Note "coup de gu.e.ule du soir" : je commence à avoir ras la casquette de ce programme qui peut gérer des quantités monstrueuses de données, faire des graphes en 3D super beaux (et SUPER inutiles car illisibles) mais qui n'avance pas d'un pouce depuis 10 ans sur des problèmes simples qui sont un boulet pour la productivité.
 

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 261
Membres
102 844
dernier inscrit
atori2