bonjour,
voici mon souci d'origine :
j'ai 2 graphes dans une feuille Excel, qui présentent les même données, formatées différemment. j'ai voulu indexer ces 2 graphes sur une légende commune: au final, lier les SeriesCollection avec leur élément de légende correspondant et réaffecter les couleurs. je n'ai pas trouvé comment faire ce lien entre une SerieCollection et sa légende, dans les propriétés du graphe...
si quelqu'un connait une technique, je suis bien preneur...
edit : je suis toujours preneur...
voici mon souci actuel :
je ne me laisse pas abattre, je crée donc ma propre légende, à base de Shapes colorées et de texte.
ok, ça fait le boulot. rosco, content. je peux désormais lier un élément de légende à sa SeriesCollection.
mon second graphe est de type anneau... je n'ai plus qu'une seule série de données, donc composée d'éléments points. une nouvelle fois, je n'arrive pas à lire leur 'nom'. je hurle et m'étrangle. de nouveau, si quelqu'un connait une méthode..
finalement, en utilisant les datalabels, avec le ShowCategoryName à True, j'ai quand même pu lire l'info que je cherchais.
et là, je m’aperçois qu'il faut que je fasse un Application.Calculate après l'application des datalabels, car les graphes sont dessinés avec le ScreenUpdating à False. sinon, le datalabel n'est pas 'relu'
et ça fait un gros clignotement à l'affichage.... c'est moche...
edit : l'info que je cherchais à lire, c'était les nom de 'category', tout simplement. problème de vocabulaire....
<code>
' graphe anneau
With ActiveChart.SeriesCollection(1)
.Name = "Activité du jour !"
.Values = plageVal
.XValues = plageX
' afficher datalabels, pour y relire leur 'noms'
.ApplyDataLabels ShowCategoryName:=True, ShowValue:=False
Application.ScreenUpdating = True ' ???
Application.Calculate ' et encore, ça marche pas à tout les coups.
Application.ScreenUpdating = False
For Each dl In .DataLabels ' souvent, ça ne rentre pas.
nb = nb + 1
tmp = RTrim(dl.Caption)
' colorer les segments points avec la couleur de ma légende .
.Points(nb).Format.Fill.ForeColor.RGB = GetColor(tmp)
Next
.DataLabels.Delete
End With
</code>
si vous avez des solutions ou une explication pour un de mes problèmes..
merci pour votre temps, et pour votre aide.
voici mon souci d'origine :
j'ai 2 graphes dans une feuille Excel, qui présentent les même données, formatées différemment. j'ai voulu indexer ces 2 graphes sur une légende commune: au final, lier les SeriesCollection avec leur élément de légende correspondant et réaffecter les couleurs. je n'ai pas trouvé comment faire ce lien entre une SerieCollection et sa légende, dans les propriétés du graphe...
si quelqu'un connait une technique, je suis bien preneur...
edit : je suis toujours preneur...
voici mon souci actuel :
je ne me laisse pas abattre, je crée donc ma propre légende, à base de Shapes colorées et de texte.
ok, ça fait le boulot. rosco, content. je peux désormais lier un élément de légende à sa SeriesCollection.
mon second graphe est de type anneau... je n'ai plus qu'une seule série de données, donc composée d'éléments points. une nouvelle fois, je n'arrive pas à lire leur 'nom'. je hurle et m'étrangle. de nouveau, si quelqu'un connait une méthode..
finalement, en utilisant les datalabels, avec le ShowCategoryName à True, j'ai quand même pu lire l'info que je cherchais.
et là, je m’aperçois qu'il faut que je fasse un Application.Calculate après l'application des datalabels, car les graphes sont dessinés avec le ScreenUpdating à False. sinon, le datalabel n'est pas 'relu'
et ça fait un gros clignotement à l'affichage.... c'est moche...
edit : l'info que je cherchais à lire, c'était les nom de 'category', tout simplement. problème de vocabulaire....
<code>
' graphe anneau
With ActiveChart.SeriesCollection(1)
.Name = "Activité du jour !"
.Values = plageVal
.XValues = plageX
' afficher datalabels, pour y relire leur 'noms'
.ApplyDataLabels ShowCategoryName:=True, ShowValue:=False
Application.ScreenUpdating = True ' ???
Application.Calculate ' et encore, ça marche pas à tout les coups.
Application.ScreenUpdating = False
For Each dl In .DataLabels ' souvent, ça ne rentre pas.
nb = nb + 1
tmp = RTrim(dl.Caption)
' colorer les segments points avec la couleur de ma légende .
.Points(nb).Format.Fill.ForeColor.RGB = GetColor(tmp)
Next
.DataLabels.Delete
End With
</code>
si vous avez des solutions ou une explication pour un de mes problèmes..
merci pour votre temps, et pour votre aide.
Dernière édition: