Yamazumi Changement de couleur des séries d'un graphe en fonction du nom

Bonjour à tous,

Je souhaiterai obtenir le même code couleur sur mon graphe, que sur le tableau en fonction de s'il s'agit d'une VA, NVA, ENVA, Waste ou Inspect. (Le nom des séries est différent à chaque fois mais une partie reste toujours la même, le nom des séries va varier en fonction de la tache.)

Chaques lignes des colonnes B, C et D du tableau sont variables, le nom des process step ligne 8 aussi.

J'ai essayé avec du vba ou de la mise en forme conditionnelle mais je n'ai pas réussi. Avez vous une idée?

Je suis preneur de VBA ou autre

Merci d'avance

Bonne journée

Denleo

pas la meme couleur tableau qui alimente le graphe

Bonsoir,

Ci-joint une proposition à tester.

Les couleurs sont paramétrées dans l'onglet "Couleur" (préfixe du label - couleur).

La couleur est ensuite attribuée en fonction de l'étiquette indiquée sur le graphique, fait point par point.

Un expert sur la bibliothèque graphique aura peut-être une solution plus simple !

La mise à jour est faite par la procédure "Couleur"

Private Sub Couleur()

Bouben

Bonjour Bouben,

Merci de ta réponse, elle convient amplement.

Je le transforme actuellement en Private Sub Worksheet_Change(ByVal Target As Range) et rajoute une condition pour eviter l'activation pour chaque changement et c'est parfait.

Tu as mis une partie de ton code en commentaire dans Sub colorier Point,

Pourrais tu me l'expliquer si tu as le temps?

je reste preneur d'une solution plus facile, si comme tu dis un expert sur la bibliothèque graphique, passe par la.

Bonjour Denleo,

Le principe :

> boucle sur tous les séries du graphiques (objet de type "Series")

> boucle sur tous les points de chaque série (objet de type "Point")

> affectation de la couleur en fonction du label

Le plus complexe est de comprendre le modèle objet de "Chart".

Chart->SeriesCollection->Series->Points->Point->DataLabel->Text (pour le texte)

et Point->Format->Fill->ForeColor->RGB (pour la couleur)

il y a sûrement de la documentation disponible.

Cette complexité n'est pas vraiment étonnante lorsqu'on connaît la richesse (et complexité) des graphiques qu'on peut faire avec Excel.

L'affectation de la couleur est gérée par la procédure "ColorierPoint", 2 paramètres :

> le point (de type Point)

> la collection de couleurs (collection)

La liste des couleurs est initialisée en amont à partir de l'onglet dédié et stockée dans une collection :

    'initialisation des couleurs
    Set colCoul = New Collection

    For iLig = 1 To 5
        'clé / couleur
        colCoul.Add oShC.Range("B" & iLig).Interior.Color, oShC.Range("A" & iLig).Value
    Next iLig
    

La partie en commentaire dans la sub "ColorierPoint" est à titre indicatif, ancienne version temporaire, dans laquelle l'attribution de la couleur était faite "en dur" dans le code VBA. Désormais les couleurs sont paramétrées.

Autre ligne obsolète (on boucle juste après sur toutes les séries) :

Set oSerie = oGraph.SeriesCollection(2)

Finalement, en enlevant les lignes en commentaires, le code VBA n'est plus si terrible !!!

J'espère avoir répondu à tes questions.

Bouben

EDIT :

La description du modèle objet "ChartObject" est disponible ici :

https://docs.microsoft.com/fr-fr/office/vba/api/excel.chartobject

En complément, le modèle objet complet d'Excel est également disponible :

https://docs.microsoft.com/fr-fr/office/vba/api/overview/excel/object-model

Rechercher des sujets similaires à "yamazumi changement couleur series graphe fonction nom"