Bonjour à tout le forum,
Cela fait un petit bout de temps que je ne suis pas venu sur le forum (il faut dire que l'outil que j'ai créé en partie grace à vous marche toujours aussi bien après tant d'année . C'est avec plaisir que je vois que le site tourne toujours à plein régime!!
Je vous sollicite à nouveau pour un petit souci de macro.
j'ai un classeur composé de plusieurs onglets. dans ces onglets, il y a 1 ou 2 graphs en ligne à chaque avec pour source un TCD pour chaque graph.
J'aimerais afficher la dernière valeur de chaque courbe pour l'ensemble des graphs du classeur.
J'ai déja trouvé une partie de la solution dans le forum, malheureusement je n'arrive pas à l'adapter à l'ensemble du classeur
Code trouvé:
Sub dernvaleur()
With Worksheets("feuill1").ChartObjects(1).Chart.SeriesCollection(1)
.ApplyDataLabels AutoText:=True, _
LegendKey:=False, _
ShowSeriesName:=False, _
ShowCategoryName:=False, _
ShowValue:=False, _
ShowPercentage:=False, _
ShowBubbleSize:=False
.Points(.Points.Count).ApplyDataLabels ShowValue:=True
End With
End Sub
Cela fonctionne très bien mais... pour la première courbe seulement et pour un seul graphique d'une feuille déterminée, or, le but est d'appliquer cette règle à tous les graphs de tout le classeur. J'ai essayé en remplaçant par workbook mais ça ne marche pas. Idem pour "Chart.SeriesCollection(1)" on peut mettre (2) ou (3) mais ça ne mettra la valeur que sur la courbe num 2 ou num 3, pas sur l'ensemble des courbes...
Pour parer à cela, j'ai dupliquer la macro
EX:
Sub dernvaleur()
With Worksheets("feuil1").ChartObjects(1).Chart.SeriesCollection(1)
.ApplyDataLabels AutoText:=True, _
LegendKey:=False, _
ShowSeriesName:=False, _
ShowCategoryName:=False, _
ShowValue:=False, _
ShowPercentage:=False, _
ShowBubbleSize:=False
.Points(.Points.Count).ApplyDataLabels ShowValue:=True
End With
With Worksheets("feuil1").ChartObjects(1).Chart.SeriesCollection(2)
.ApplyDataLabels AutoText:=True, _
LegendKey:=False, _
ShowSeriesName:=False, _
ShowCategoryName:=False, _
ShowValue:=False, _
ShowPercentage:=False, _
ShowBubbleSize:=False
.Points(.Points.Count).ApplyDataLabels ShowValue:=True
End With
cette bidouille fonctionne et les deux étiquettes s'affichent à la fin de chaque courbe mais elle a une grosse limite... le nombre de courbes diffère de graph en graph... si on utilise cette macro pour un graph à une seule courbe, la macro plante
J'ai mis en pj un fichier illustrant mes propos et la macro utilisé mais incomplète
Merci d'avance pour votre aide
Yichaam
Cela fait un petit bout de temps que je ne suis pas venu sur le forum (il faut dire que l'outil que j'ai créé en partie grace à vous marche toujours aussi bien après tant d'année . C'est avec plaisir que je vois que le site tourne toujours à plein régime!!
Je vous sollicite à nouveau pour un petit souci de macro.
j'ai un classeur composé de plusieurs onglets. dans ces onglets, il y a 1 ou 2 graphs en ligne à chaque avec pour source un TCD pour chaque graph.
J'aimerais afficher la dernière valeur de chaque courbe pour l'ensemble des graphs du classeur.
J'ai déja trouvé une partie de la solution dans le forum, malheureusement je n'arrive pas à l'adapter à l'ensemble du classeur
Code trouvé:
Sub dernvaleur()
With Worksheets("feuill1").ChartObjects(1).Chart.SeriesCollection(1)
.ApplyDataLabels AutoText:=True, _
LegendKey:=False, _
ShowSeriesName:=False, _
ShowCategoryName:=False, _
ShowValue:=False, _
ShowPercentage:=False, _
ShowBubbleSize:=False
.Points(.Points.Count).ApplyDataLabels ShowValue:=True
End With
End Sub
Cela fonctionne très bien mais... pour la première courbe seulement et pour un seul graphique d'une feuille déterminée, or, le but est d'appliquer cette règle à tous les graphs de tout le classeur. J'ai essayé en remplaçant par workbook mais ça ne marche pas. Idem pour "Chart.SeriesCollection(1)" on peut mettre (2) ou (3) mais ça ne mettra la valeur que sur la courbe num 2 ou num 3, pas sur l'ensemble des courbes...
Pour parer à cela, j'ai dupliquer la macro
EX:
Sub dernvaleur()
With Worksheets("feuil1").ChartObjects(1).Chart.SeriesCollection(1)
.ApplyDataLabels AutoText:=True, _
LegendKey:=False, _
ShowSeriesName:=False, _
ShowCategoryName:=False, _
ShowValue:=False, _
ShowPercentage:=False, _
ShowBubbleSize:=False
.Points(.Points.Count).ApplyDataLabels ShowValue:=True
End With
With Worksheets("feuil1").ChartObjects(1).Chart.SeriesCollection(2)
.ApplyDataLabels AutoText:=True, _
LegendKey:=False, _
ShowSeriesName:=False, _
ShowCategoryName:=False, _
ShowValue:=False, _
ShowPercentage:=False, _
ShowBubbleSize:=False
.Points(.Points.Count).ApplyDataLabels ShowValue:=True
End With
cette bidouille fonctionne et les deux étiquettes s'affichent à la fin de chaque courbe mais elle a une grosse limite... le nombre de courbes diffère de graph en graph... si on utilise cette macro pour un graph à une seule courbe, la macro plante
J'ai mis en pj un fichier illustrant mes propos et la macro utilisé mais incomplète
Merci d'avance pour votre aide
Yichaam