Forcer les couleurs d'un graphique

seb2

XLDnaute Nouveau
Bonjour à tous,

J'édite un graphique (camembert ou histogramme avec plusieurs séries) que je remets à jour régulieremenr. je voudrais utiliser toujours la même couleur pour la même série "en automatique". (Le nombre de série peut varier, ce qui m'oblige à modifier une à une les couleurs du graphique ...). Je joins un fichier d'exemple pour plus de facilité.
Seb!
 

Fichiers joints

seb2

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

Merci beaucoup pour la réponse ! (et la rapidité ):)
La solution est bien, mais il reste 2 points :
-Si la série "A" se trouve en ligne 8 la couleur de la série est jaune, moi je voudrais que la série "A" reste en rouge sur le graphe (comme au départ)
- ensuite si je supprime la ligne la serie "F" (suppression de la ligne) les couleurs sont décalées : la série "G" est en noir alors qu'elle devrait être en marron ci-joint le fichier :
Seb !
 

Fichiers joints

CB60

XLDnaute Barbatruc
Re : Forcer les couleurs d'un graphique

re
Je ne pense pas que ce soit possible ce que tu demande.
Les couleurs sont affectés en fonction de la premiere série, la macro ne peut pas testé les valeurs de cellule et mettre une couleur en fonction de cela. ( mais je ne suis pas un expert en macro)
 

myDearFriend!

XLDnaute Barbatruc
Re : Forcer les couleurs d'un graphique

Bonsoir seb2, l'ami CB60,

Pas certain d'avoir vraiment cerné la totalité du problème, mais vous trouverez en pièce jointe ce que j'ai compris de votre échange...

Le code utilisé est le suivant :

Code:
[SIZE=2][COLOR=GRAY][B][I]DANS LE MODULE DE CODE DE LA FEUILLE[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] Worksheet_Change([COLOR=NAVY]ByVal[/COLOR] Target [COLOR=NAVY]As[/COLOR] Range)
[COLOR=GREEN]'myDearFriend!  -  www.mdf-xlpages.com[/COLOR]
[COLOR=NAVY]Dim[/COLOR] Cel [COLOR=NAVY]As[/COLOR] Range
    [COLOR=NAVY]If[/COLOR] Target.Count > 1 [COLOR=NAVY]Then Exit Sub
    If Not[/COLOR] Application.Intersect(Target, Range("B6:B30")) [COLOR=NAVY]Is Nothing Then
        Set[/COLOR] Cel = Sheets("Corresp.Couleurs").Columns(1).Find(Target.Value, LookIn:=xlValues)
        [COLOR=NAVY]If Not[/COLOR] Cel [COLOR=NAVY]Is Nothing Then[/COLOR]
            Target.Offset(0, -1).Interior.Color = Cel.Interior.Color
            ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) _
                            .Points(Target.Row - 5).Interior.Color = Cel.Interior.Color
        [COLOR=NAVY]End If
    End If
End Sub[/COLOR][/SIZE]
L'utilisation est expliquée dans le classeur joint.

Cordialement,
 

Fichiers joints

CB60

XLDnaute Barbatruc
Re : Forcer les couleurs d'un graphique

Bonjour à tous

Merci MDF pour ce joli Boulot, heureusement que j'avais mis ça:
mais je ne suis pas un expert en macro:)

Il me reste beaucoup à apprendre
 

seb2

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

Bonjour à tous !

Bravo MDF ! c'est super ce que tu as fait !
(juste une petite remarque, lorsque on change la couleur dans corresp couleurs, il faut "retaper" le nom de la serie pour qu'excel fasse la modif)
En tout cas ton fichier me va très bien
Merci beaucoup :) !
Seb!
 

seb2

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

C'est encore moi, je voudrais faire la même chose avec un histogramme, je pensais y arriver, mais je ne connais pas suffisament VBA. Je joins le fichier pour exemple. (En faite je voudrais à la fois un camembert et un histogramme sur la même feuille)
Merci d'avance
Seb!
 

Fichiers joints

myDearFriend!

XLDnaute Barbatruc
Re : Forcer les couleurs d'un graphique

Bonjour seb2, CB60, le Forum,

CB60 a dit:
Bonjour à tous

Merci MDF pour ce joli Boulot, heureusement que j'avais mis ça:
mais je ne suis pas un expert en macro

Il me reste beaucoup à apprendre
Cher ami Bruno, pour ma part, c'est grâce à ton travail que je me familiarise peu à peu avec les graphiques Excel. Sur ce thème, il me reste, moi aussi, beaucoup à apprendre et je t'en remercie. :)

Seb2, tu trouveras ci-joint ton fichier modifié selon tes souhaits.

J'ai dû modifier légèrement la procédure pour trouver un traitement commun aux 2 types de graphique :
Code:
[SIZE=2][COLOR=GRAY][B][I]DANS LE MODULE DE CODE DE LA FEUILLE[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] Worksheet_Change([COLOR=NAVY]ByVal[/COLOR] Target [COLOR=NAVY]As[/COLOR] Range)
[COLOR=GREEN]'myDearFriend!  -  www.mdf-xlpages.com[/COLOR]
[COLOR=NAVY]Dim[/COLOR] Graph [COLOR=NAVY]As[/COLOR] ChartObject
[COLOR=NAVY]Dim[/COLOR] Cel [COLOR=NAVY]As[/COLOR] Range
    [COLOR=NAVY]If[/COLOR] Target.Count > 1 [COLOR=NAVY]Then Exit Sub
    If Not[/COLOR] Application.Intersect(Target, Range("B6:B30")) [COLOR=NAVY]Is Nothing Then
        Set[/COLOR] Cel = Sheets("Corresp.Couleurs").Columns(1).Find(Target.Value, LookIn:=xlValues)
        [COLOR=NAVY]If Not[/COLOR] Cel [COLOR=NAVY]Is Nothing Then[/COLOR]
            Target.Offset(0, -1).Interior.Color = Cel.Interior.Color
            [COLOR=NAVY]For Each[/COLOR] Graph [COLOR=NAVY]In[/COLOR] ActiveSheet.ChartObjects
                Graph.Chart.Legend.LegendEntries(Target.Row - 5).LegendKey.Interior.Color = Cel.Interior.Color
            [COLOR=NAVY]Next[/COLOR] Graph
        [COLOR=NAVY]End If
    End If
End Sub[/COLOR][/SIZE]
J'agis cette fois directement sur les légendes du graphique et non plus sur les séries, ce qui donne au final le même effet pour tous les graphiques présents.

Par ailleurs, ta remarque est bonne, seule la modification du nom de série en feuille principale peut faire agir cette macro. Ainsi, en cas de modification des couleurs en feuille "Corresp.Couleurs", il faut obligatoirement revalider le nom de série correspondant en feuille principale pour déclencher le traitement.

Cordialement,
 

Fichiers joints

seb2

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

Merci beaucoup MDF !
C'est exactement ce que je voulais
Bravo !
Seb! :)
 

seb2

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

... C’est encore moi ...
Il y a un petit bug dans la macro que je n’arrive pas à résoudre, à partir de la lettre G (cellule B12) lorsque je retape cette lettre pour mettre à jour la couleur j’ai le message d’erreur suivant : Impossible de lire la propriété Legendentries de la classe legend. ...
Je ne comprends pas pourquoi le problème apparait seulement à partir de G.
Seb !;)
 

myDearFriend!

XLDnaute Barbatruc
Re : Forcer les couleurs d'un graphique

Re,

Ton graph "histogramme" ne possède pas de série (et donc de légende) au-delà de F... d'où l'erreur !

Peut-être faudrait-il que tu revois de façon logique tes graphiques.

Sinon, si tu veux contourner ce message causé, il est vrai, par un seul des deux graphiques :

Code:
[SIZE=2][COLOR=GRAY][B][I]DANS LE MODULE DE CODE DE LA FEUILLE[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] Worksheet_Change([COLOR=NAVY]ByVal[/COLOR] Target [COLOR=NAVY]As[/COLOR] Range)
[COLOR=GREEN]'myDearFriend!  -  www.mdf-xlpages.com[/COLOR]
[COLOR=NAVY]Dim[/COLOR] Graph [COLOR=NAVY]As[/COLOR] ChartObject
[COLOR=NAVY]Dim[/COLOR] Cel [COLOR=NAVY]As[/COLOR] Range
    [COLOR=NAVY]If[/COLOR] Target.Count > 1 [COLOR=NAVY]Then Exit Sub
    If Not[/COLOR] Application.Intersect(Target, Range("B6:B30")) [COLOR=NAVY]Is Nothing Then
        Set[/COLOR] Cel = Sheets("Corresp.Couleurs").Columns(1).Find(Target.Value, LookIn:=xlValues)
        [COLOR=NAVY]If Not[/COLOR] Cel [COLOR=NAVY]Is Nothing Then[/COLOR]
            Target.Offset(0, -1).Interior.Color = Cel.Interior.Color
            [COLOR=NAVY][B]On Error Resume Next
[/B]            For Each[/COLOR] Graph [COLOR=NAVY]In[/COLOR] ActiveSheet.ChartObjects
                Graph.Chart.Legend.LegendEntries(Target.Row - 5).LegendKey.Interior.Color = Cel.Interior.Color
            [COLOR=NAVY]Next[/COLOR] Graph
            [COLOR=NAVY][B]On Error GoTo[/B][/COLOR] 0
        [COLOR=NAVY]End If
    End If
End Sub[/COLOR][/SIZE]
Cordialement,
 

seb2

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

Bonjour MDF !

Encore merci ! T'est vraiment sympa.
J'ai fais les modif dans le fichier et tout marche bien.
Je joins ici la dernière version du fichier avec un camembert et un histogramme. Ce fichier permet de définir les couleurs de la légende des deux graphes et aussi de les modifier. Les deux graphes comportent 26 series (ce qui est beaucoup trop) mais on peut toujours en supprimer.

Bavo MDF!

Seb !
 

Fichiers joints

seb2

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

Bonjour à tous !

J'ai voulu améliorer le fichier pour obtenir un graphique dynamique avec la commande DECALER. Mais j'ai des problème avec l'histogramme.
Depuis la modification, l'affichage des valeurs et de la légende est faux pour l'histogramme, il y a une permutation circulaire de la légende (et des valeurs) à chaque mise à jour. Et je n'arrive pas à regler le problème.
Ci-joint le fichier :
 

Fichiers joints

kounflex

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

Bonsoir à tous,

Voila je suis tout nouveau sur le forum (et en tant qu'utilisateur d'excel qui plus est!) et je trouve que ce site est extrèmement intéressant pour qui veut en apprendre (plus) sur Excel.

J'ai suivi avec attention cette discussion sur la maniere de "forcer les couleurs" ...
Car moi aussi j'aimerai utiliser cette petite astuce qui me facilitera la vie au boulot !!! au lieu de tout faire à la mano, c'est TOP !

J'ai télécharger le fichier zip que tu as mis en ligne myDearFriend, j'ai exactement copier-coller ta macro sur un autre classeur auquel j'ai rajouté 2 feuilles du même nom que celles pour lesquelles la macro avait écrite au préalable...

...j'ai également copier coller les valeurs du tableau du fichier excel de Seb2 ainsi que tous les codes couleurs et les noms de séries ... et ceux exactement dans les mêmes cellules (ligne;colonne) que le fichier de Seb2

Cependant lorque la macro est lancée, et que je crée ensuite mon "camembert", je n'ai pas l'effet escompté (les codes couleurs dans le camembert)

Quelqu'un saurait il pourquoi?

Ai je omis quelque chose??

Merci de me venir en aide, et encore merci pour tous les posts que vous faites et qui en aident plus d'un !!
 

benlecanard

XLDnaute Junior
Re : Forcer les couleurs d'un graphique

Bonjour

Pourrais-tu joindre le fichier (ou une partie) que tu as ainsi élaboré?
(Plus facile avec un exemple)
 

kounflex

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

Hello,

Merci pour ton aide Benlecanard! ;-)

Voici le fichier.

En fait il s'agit d'un portefeuille de fonds.

Sur la premiere feuille, tu as toute une liste de fonds avec différentes informations. Mais tu as surtout l'allocation des fonds dans le portefeuille en 6eme colonne.

Et selon le PORTEFEUILLE que je veux créer, je fais une allocation à ma guise.(choix des fonds et des proportions)

Les onglets jaunes sont ceux sur lesquels j'aimerai forcer les couleurs des graphes.

Allocation stratégique, géographique et liquidité.

On va prendre pour exemple le cas des Stratégies.

Chaque Fonds peut avoir une ou plusieurs stratégies de gestion. Le portefeuille final suivra donc une ou plusieurs stratégies dépendant directement de la part des stratégies que suivent les fonds eux-même et de la proportion de ces fonds dans le portefeuille.

J'aimerai que selon les stratégies du portefeuille, celles ci gardent toujours la meme couleur dans le camembert quelque soit leur proportion dans le portefeuille, qu'elles y figurent ou pas.

C'est un peu compliqué, mais c'est très intéressant comme boulot.

Pourrais tu y jeter un coup d'oeil STP?


Autre subtilité :


Tu remarqueras que dans l'onglet allocation stratégique (et allocation géographique), l'info est traitée en 2 fois :

D'abord une pondération en fonction de la part des fonds ds le portefeuille est faite...là tu obtiens la proportion des stratégies dans le portefeuille.(colonne AS)

Puis les stratégies sont triées de la plus présente à la moins présente dans le PTF.(AV5:AW24)

Enfin je regroupe en un intitulé "OTHERS" toutes les strat qui ont une valeur en dessous d'un seuil que je choisis.(AZ24)

Le graphe est créé à partir du tableau (AV29:AW48)

Il fera figurer Toutes les strat qui ont un % au dessus du seuil choisi et une part "Others" qui représentera la somme des strat qui ont un % inférieur au seuil choisi.


Enfin bref, dis moi ce que tu en penses .

UN enorme MERCI pour ton aide.
 

Fichiers joints

cedric.bollini

XLDnaute Nouveau
Re : Forcer les couleurs d'un graphique

Bonjour,

Je voudrais pouvoir forcer les couleurs d'un graphe
qui se situe sur une autre feuille Excel,
j'ai essayé de bidouiller les exemples trouver dans ce sujet mais
je n'ai pas réussi,

Merci d'avance pour votre aide,

PS: le ficher joint est un exemple de ce que je voudrais faire car je
ne peut pas mettre le fichier original ( Problème de confidentialité ;))
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas