Dans un graph, afficher l'étiquette de la dernière valeur renseignée de la série

cart46

XLDnaute Nouveau
Bonjour,

ma problématique : dans un graph, comment afficher l'étiquette de la dernière valeur renseignée d'une série?
exemple : j'ai des valeurs qui sont rentrées tous les mois. Ma série de données intègre les 12 cellules, mais au moi d'avril, seulement quatre cellules sont renseignées...

janvier février mars avril mai juin juillet août septembre octobre novembre décembre
prévi 2 5 8 10 13 17 19 20 25 30 35 38
réali 0 4 7 10


la macro

Sub UnDernierPoint()
With 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
End Sub

... fonctionne très bien pour les séries de données intégralement renseignées :
(.Points.Count) renvoit 12 systématiquement, la macro tombe en erreur si je n'ai pas de valeur en décembre.
pour les prévi ça marche, pas pour le réali

Merci par avance pour votre aide!
 

Pièces jointes

  • derniere valeur série - Copie.xlsm
    17.6 KB · Affichages: 43
Dernière édition:
G

Guest

Guest
Re : Dans un graph, afficher l'étiquette de la dernière valeur renseignée de la série

Re,

Merci, c'est plus pratique pour trouver une solution. voici une proposition qui applique la fonction de feuille de calcul (NB) (en vba: Application.Count) sur le tableau des valeurs de la série.

fonctionne sur l'exemple

Code:
Sub UnDernierPoint2()
    Dim nbPoints As Variant
    With Feuil1.ChartObjects(1).Chart.SeriesCollection(2)
        .ApplyDataLabels AutoText:=True, _
                         LegendKey:=False, _
                         ShowSeriesName:=False, _
                         ShowCategoryName:=False, _
                         ShowValue:=False, _
                         ShowPercentage:=False, _
                         ShowBubbleSize:=False
        nbPoints = Application.Count(.Values)
        .Points(nbPoints).ApplyDataLabels ShowValue:=True
    End With
End Sub

A+
 
Dernière modification par un modérateur:

cart46

XLDnaute Nouveau
Re : Dans un graph, afficher l'étiquette de la dernière valeur renseignée de la série

Merci Hasco pour ta rapidité et efficacité, ça marche parfaitement.

J'ai essayé d'automatiser cette macro, pour qu'elle s'applique à tous les graphs de la feuille : ok, j'y arrive
code :

Sub UnDernierPoint2()
Dim nbPoints As Variant
Dim Mygraph As ChartObject

For Each Mygraph In Feuil1.ChartObjects
With Mygraph.Chart.SeriesCollection(2)
.ApplyDataLabels AutoText:=True, _
LegendKey:=False, _
ShowSeriesName:=False, _
ShowCategoryName:=False, _
ShowValue:=False, _
ShowPercentage:=False, _
ShowBubbleSize:=False
nbPoints = Application.Count(.Values)
.Points(nbPoints).ApplyDataLabels ShowValue:=True
End With
Next Mygraph
End Sub

... par contre j'ai essayé d'automatiser pour que ça s'applique à toutes les séries présentes dans chacun des graphs, et là je bloque
j'ai un essai de macro UnDernierPoint2bis()dans le classeur en p.j.
 

Pièces jointes

  • h_cart46 - Copie.xlsm
    25.4 KB · Affichages: 48
G

Guest

Guest
Re : Dans un graph, afficher l'étiquette de la dernière valeur renseignée de la série

Bonjour,

Il serait bien que tu dises ce genre de choses dès ta première demande.
Code:
Sub UnDernierPoint2()
    Dim nbPoints As Variant
    Dim Mygraph As ChartObject
    Dim xSeries As Series
    For Each Mygraph In Feuil1.ChartObjects
        For Each xSeries In Mygraph.Chart.SeriesCollection
                With xSeries
                    .ApplyDataLabels AutoText:=True, _
                                     LegendKey:=False, _
                                     ShowSeriesName:=False, _
                                     ShowCategoryName:=False, _
                                     ShowValue:=False, _
                                     ShowPercentage:=False, _
                                     ShowBubbleSize:=False
                    nbPoints = Application.Count(.Values)
                    .Points(nbPoints).ApplyDataLabels ShowValue:=True
                End With
        Next
    Next Mygraph
    
End Sub

A+
 

cart46

XLDnaute Nouveau
Re : Dans un graph, afficher l'étiquette de la dernière valeur renseignée de la série

Bonjour et merci ça marche.

je n'avais pas demandé l'objectif final, car je pensais y arriver, mais j'ai présumé de mes compétences de développeur ! :)

A+ et encore merci!!!!
 

Statistiques des forums

Discussions
312 176
Messages
2 085 967
Membres
103 069
dernier inscrit
jujulop