[VBA] - Coloration graphiques multiples

Bonjour,

J'ai automatisé la génération de résultats qui aident à définir les caractéristiques d'espèces végétales.

Je présente le résultat final sous forme de multiples tableaux où il est précisé un nom de placette (lieu de relevé) et les caractéristiques des espèces que l'on recherche.

En l'occurrence j'ai lancé la recherche sur leurs préférences écologiques (ensoleillement, hygrométrie, salinité, texture du sol, etc.).

A chaque fois qu'un tableau est créé, je colore en vert la cellule correspondant à l'espèce qui présente le plus fort taux de recouvrement (échelle entre 1 et 9) et je répercute cette couleur sur la caractéristique écologique qui lui correspond.

Ensuite je génère un graphique, puis je passe à la création du tableau suivant.

Est-ce que vous sauriez comment je peux faire pour que cette couleur verte apparaisse sur le graphique ?

J'ai notamment regardé ce post : https://forum.excel-pratique.com/viewtopic.php?t=100631 ainsi que les différentes infos que j'ai trouvé sur internet, mais dans mon cas je ne vois pas comment cibler le graphique en question, et surtout, la "barre" sur graphique qui m'intéresse.

Je joins un document si vous souhaitez voir comment s'exécute la macro dans son ensemble (création de pages).

Merci de votre attention

Bonne journée !

Hello, voilà qui ne t'aidera peut-être pas beaucoup, mais tu peux rajouter la ligne suivante

.FullSeriesCollection(1).Points(m).Format.Fill.ForeColor.RGB = RGB(146, 208, 80)
With d.Chart
                    .HasTitle = True
                    .ChartTitle.Caption = ""
                    .ChartType = xlColumnClustered
                    .SetSourceData Source:=ActiveSheet.Range(ActiveSheet.Cells(a, 5), ActiveSheet.Cells(a + 1, lcas))
                    .SetElement (msoElementLegendNone)
                    .SetElement (msoElementDataLabelOutSideEnd)
                    .FullSeriesCollection(1).Points(m).Format.Fill.ForeColor.RGB = RGB(146, 208, 80)
                End With

Ca fonctionne, si m est égal ici à l'équivalent de ton maximum dans la plage de création du graphique. Je ne suis pas arrivé à automatiser ton m, je me suis perdu dans tous les codes de créations de plages. Et puis dans les cas où tu as 4 ou 5 valeurs égales, tu veux que toutes soient en vert ?

Bonjour,

Merci beaucoup ! C'est en fait exactement ce que je recherchais.

Mon problème provenait du fait que je ne parvenais pas à indiquer "l'adresse" des "rectangles" qui composent mon graphique (je connais pas les termes exacts...).

Avec ceci :

.FullSeriesCollection(1).Points(m).Format.Fill.

Vous m'avez indiqué comment m'y prendre et j'ai pu adapter le code pour que ça fonctionne.

J'ai déplacé la partie du code où "m" est calculé et j'ai créé une nouvelle variable "k" qui enregistre la position de la cellule colorée. Vue que le calcul de "m" est dans une boucle, je profite de cette boucle pour colorer de la même manière mon graphique.

Merci !

Bonne journée

Si c'est ce qu'il fallait, super !

Pour info, n'étant pas un pro et n'ayant pas la solution en amont, je suis parti de l'enregistreur de macro et j'ai recomposé ensuite une seule ligne avec tout le charabia enregistré.

Rechercher des sujets similaires à "vba coloration graphiques multiples"