Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bon matin chers forumeurs, une question simple mais très spécialisée.
Pour les comparaisons, j'aime bien combiner des histo et courbes, plus facile à lire pour les nombreuses séries, par contre, les multiples couleurs posent un problème.
Connaissant l'ordre de mes séries, je voudrais que pour 10 séries par exemple, la série 6 est la même couleur que la 1, la 7 que la 2, etc.
Le problème survient lors de la récupération de l'index de la couleur de la série "base" lorsque celle-ci a été fixée automatiquement. Le code suivant retourne 57 quelque soit la couleur :
Code:
y = ActiveChart.SeriesCollection(i - z).Border.ColorIndex
J'en déduis donc que le code 57 est une spécialité à la excel et ne correspond pas à une couleur déterminée. Constat renforcé par un test avec sélection manuelle de la couleur, cette fois-ci, l'index me retourne la couleur que j'avais choisie.
Rajouter un .value après ColorIndex n'amène qu'une erreur... Y'a-t-il une formule magique où arrive-t-on à un mur ?
Pour une solution alternative, je précise que je n'envisage pas de fixer manuellement les couleurs au départ.
Re : Graphe : Récupérer la couleur d'une série fixée automatiquement...
Bonjour Charly
Pas sur d'avoir tout compris, mais essaye peut être le code ci-dessous, si cela peut t'aider :
Code:
Sub test()
Dim i As Integer
For i = 6 To 10
ActiveChart.SeriesCollection(i).Border.ColorIndex = _
ActiveChart.SeriesCollection(i - 5).Border.ColorIndex
Next i
End Sub
Re : Graphe : Récupérer la couleur d'une série fixée automatiquement...
Merci Pierrot, tu as bien compris le but mais le problème de ce code (à moins que ça ne vienne de chez moi, mais j'en doute) c'est que si la série i-5 a reçu une couleur de manière automatique, son index de couleur est égal à 57 (qu'elle apparaisse rouge, rose ou bleu peu importe, d'ailleurs sur la palette c'est le blanc qui est sélectionné), et lorsque tu appliques ensuite ce 57 à la série i, il ressort une couleur aléatoire...
Quand je dis aléatoire, c'est à moitié vrai, je soupçonne excel de posséder une liste allant de 1 à 255 (nb max de séries) avec une couleur (appelée par l'index 57) affectée.
Pour éclairer le problème par un exemple concret :
Ma combinaison c'est base en histogramme et comparaison en courbe. Ce que je veux c'est la couleur de l'intérieur de l'histo (nuance que je viens de comprendre) appliquée à la courbe ("border"). Pour ceux que ça intéresse voici ton code modifié pour 4 séries, 1 et 2 sont en histo, 3 et 4 en courbes :
Code:
Sub CouleurHistoVersCourbe()
Dim i As Integer
For i = 3 To 4
MsgBox ActiveChart.SeriesCollection(i - 2).Interior.ColorIndex
MsgBox ActiveChart.SeriesCollection(i).Border.ColorIndex
ActiveChart.SeriesCollection(i).Border.ColorIndex = ActiveChart.SeriesCollection(i - 2).Interior.ColorIndex
Next i
End Sub
Testez en assignant des couleurs manuellement à 1 et 2, vos courbes reprendront ces couleurs, parfait.
Ensuite, assignez les couleurs automatiquement à 1 et 2, 3 et 4 reprendront leurs couleurs auto, différentes de 1 et 2.
C'est donc là toute la problématique que je crains insoluble, la couleur auto renvoie toujours le même index, impossible de savoir quelle est la couleur sélectionnée... ?
P.S : il semble que pour les courbes, l'index auto soit -4105, 57 étant pour les histo.
Re : Graphe : Récupérer la couleur d'une série fixée automatiquement...
Re,
oui effectivement, en fait ce ne doit pas être un numéro d'index couleur qui est renvoyé, mais une constante précisant que la couleur est automatique. Essaye avec la propriété "color" de l'objet devrait renvoyé l'équivalent RGB :
Code:
Dim i As Integer
For i = 6 To 10
ActiveChart.SeriesCollection(i).Border.Color = _
ActiveChart.SeriesCollection(i - 5).Border.Color
Next i
Re : Graphe : Récupérer la couleur d'une série fixée automatiquement...
Bonjour,
Je ne trouve pas le 57, mais bien le -4105 qui correspond à xlColorIndexAutomatic. C.a.d. la case option Automatique cochée.
En revanche, avec ...
MsgBox ActiveChart.SeriesCollection(1).Interior.Color
ou
MsgBox ActiveChart.SeriesCollection(1).Border.Color
...je recupere les vraies valeurS que je peux ensuite piloter.
ActiveChart.SeriesCollection(1).Interior.Color = 255 passe en rouge
ColorIndex renvoie un index de couleur liée à la palette en cours
Color renvoie la valeur couleur RGB.
Re : Graphe : Récupérer la couleur d'une série fixée automatiquement...
Bonjour à tous.
Je me permets de poster à la suite de cette question, j'espère que c'est bien la "procédure", mais même si ma question est un peu plus vaste, elle reste dans le meme sujet je crois... si je ne suis pas au bon endroit, plein d'excuses par avance...
Donc :
Le début de ce topic m'a bien dépanné, mais je me pose la question suivante :
De la même manière que 255 = Rouge, comment connaitre le code, le numéro qui correspond aux couleurs un peu spéciales, comme les textures, ou les dégradés... ?
Re : Graphe : Récupérer la couleur d'une série fixée automatiquement...
Bonjour à tous,
J'avais un problème un peu similaire en ce sens que je souhaitais créer des courbes diverses mais avec toujours la même couleur pour un type de courbe.
J'ai résolu de la façon suivante:
Dans une feuille j'ai colorié autant de cellules que de types de graphes avec les couleurs que je souhaitais utiliser.
Dans la macro je mets l'index de la couleur dans une variable, la cellule étant fonction du type de graphe:
Code:
Color = Worksheets("Situation").Cells(i + 2, 25).Interior.ColorIndex
Lors de la création du graphe, j'applique cette variable:
Code:
ActiveChart.SeriesCollection(x).ChartType = xlLineMarkers
ActiveChart.SeriesCollection(x).Border.ColorIndex = Color
ActiveChart.SeriesCollection(x).MarkerBackgroundColorIndex = Color
ActiveChart.SeriesCollection(x).MarkerForegroundColorIndex = Color
Cela marche très bien et de plus on peut changer les couleurs facilement par l'intermédiaire des cellules.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD