VBA : Dernières étiquettes de données de plusieurs séries

Bonjour à tous,

Je me tourne une nouvelle fois vers vous pour vous demander de l'aide sur un problème a priori simple, mais sur lequel je bute...

J'aimerais développer une macro qui n'afficherait que les "SeriesName" d'une collection de séries de données, et ceci sur le dernier point de la série.

Je me suis renseigné, j'ai cherché, j'ai vu qu'il existait l'objet .Points.Count, qui est le dernier point de la série de données, mais je n'arrive pas à l'utiliser.

Avec mes 64 séries de données, je voulais faire un truc du genre :

Sub Etiquette_donee()

Dim i%

For i = 2 To 64

    With Sheets("Suivi").ChartObjects("Graphique 2").Chart.SeriesCollection(i)
        .ApplyDataLabels AutoText:=True, _
            LegendKey:=False, _
            ShowSeriesName:=False, _
            ShowCategoryName:=False, _
            ShowValue:=False, _
            ShowPercentage:=False, _
            ShowBubbleSize:=False
        .Points(.Points.Count).ApplyDataLabels ShowSeriesName:=True

    End With

Next i

End Sub

Ce code n'affiche aucun message d'erreur, mais ne fonctionne pas...

Pourriez-vous éclairer ma lanterne svp ?.....

Merci d'avance

Je pensais sinon à quelque chose du genre :

Sub Etiquette_donnee()

Dim i%
For i = 2 To 64

    ChartObjects("Graphique 2").SeriesCollection(i).Points(Points.Count).ApplyDataLabels
    ActiveChart.SeriesCollection(i).DataLabels.Select
    Selection.ShowSeriesName = True
    Selection.ShowValue = False
    Selection.ShowValue = False

Next i

End Sub

mais j'ai une erreur de compilation : "Sub ou Function non définie"

Heeeeelp SVP

bonjour,

reçois-tu une message d'erreur ? lequel ?

j'ai essayé ton code chez moi cela fonctionne sans problème.

Hello, et merci de ton intérêt ! Non pas de message d'erreur, le code semble sexecuter mais rien ne se passe sur le graphique...

J'ai même regarder "dessous" le graphique pour voir si les étiquettes de données ne se glissaient pas à l'arrière plan, non....

Pas d'idées ?

Bonsoir,

pas d'idées sans ton fichier, ou une copie dans lequel tu peux reproduire l'erreur.

Bonjour,

Essaie ainsi :

Option Explicit
Sub Etiquette_donnees()
Dim sc As Series, i As Byte
    For i = 1 To 2
        Set sc = Worksheets("Suivi").ChartObjects(1).Chart.SeriesCollection(i)
        With sc
            .ApplyDataLabels Type:=xlDataLabelsShowNone
            .Points(.Points.Count).ApplyDataLabels ShowSeriesName:=True, ShowValue:=False
        End With
    Next i
    Set sc = Nothing
End Sub

Hello, merci pour vos réponses.

Jean-Eric, ta solution ne fonctionne pas quand je l'applique aux séries autres que la première, qui est l'axe y = x sur le fichier joint..

En clair, cela ne marche que sur la première série..

Re,

Nos propositions fonctionnent.

Maintenant, il faut revoir la construction du graphique.

Cdlt.

Merci pour vos réponses..

Comme tu l'avais sans doute remarquer Jean-Eric, le pb vient du fait que ma source de données prend en compt etoutes les valeurs de la période et court jusqu'au 01/10/15 (donnée vide) et donc la méthode Poins.Count ne fonctionne pas, normal..

Pour faire comprendre à la macro de compter comme dernier point la dernière valeur non vide de la ligne, pour chaque série, j'ai utilisé la fonction NBVAL en VBA

Option Explicit
Sub Etiquette_donnee()

Dim nb_points_de_données%

nb_points_de_données = WorksheetFunction.CountA(Rows("44:44")) - 4

Dim sc As Series, i As Byte
    For i = 1 To 16
        Set sc = Worksheets("Suivi").ChartObjects("Graphique 2").Chart.SeriesCollection(i)
        With sc
            .ApplyDataLabels Type:=xlDataLabelsShowNone
            .Points(nb_points_de_données).ApplyDataLabels ShowSeriesName:=True, ShowValue:=False
        End With
    Next i
    Set sc = Nothing

End Sub

Merci beaucoup, je not ece sujet comme résolu !

Rechercher des sujets similaires à "vba dernieres etiquettes donnees series"