IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Recupérer le libellé des "Points" sur un graphique [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de LouiMz
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 104
    Points : 154
    Points
    154
    Par défaut
    Bonjour,

    Je viens vers vous car je rencontre un petit problème.

    J'ai plusieurs graphiques sur la même feuille. Chacun ne contient qu'une seule série de données. De la forme suivante

    Nom Quantité
    -----------------
    Jacky 4
    Benji 5
    Paul 17
    Tron 1

    ... etc ...

    Je réussis, grâce au code suivant, à récupérer les quantités à partir du graphique (une seule série de données par graphique):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For Each pointt In ActiveChart.SeriesCollection(1).Points
            quantite = pointt.DataLabel.Text
        Next
    Que je convertis par la suite...
    Or je ne trouve pas de méthode me permettant de récupérer le nom (libellé).
    J'ai essayé toutes les méthodes de "DataLabel" mais aucune ne me renvoie le nom.

    Si vous aviez une idée, je suis preneur

    Je détaille un petit peu plus

    Mon but est d'obtenir une couleur unique pour chaque nom pour tout les graphiques.

    Par exemple, je choisis la couleur bleu pour Benji. Je souhaiterai la conserver pour les différents graphiques contenant cette personne.

    Si vous avez besoin de plus de détail ou d'un exemple concret, je suis dispo
    Cordialement

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Une alternative pour récupérer le nom et la valeur de chaque point
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub Test()
    Dim A As String, B As Double
    Dim i As Integer
    Dim Ch As Chart
     
    Application.ScreenUpdating = False
    Set Ch = Worksheets("Feuil1").ChartObjects("Graphique 1").Chart         'Adapter nom de la feuille et nom du graphique
    With Ch.SeriesCollection(1)
        For i = 1 To .Points.Count
            'A le libélé du point
            A = Application.Index(.XValues, i)
            'B la valeur du point
            B = Application.Index(.Values, i)
            MsgBox "Point " & i & " (" & A & " , " & B & ")"
        Next i
    End With
    Set Ch = Nothing
    End Sub

    [Edit]@ statista
    C'est plus facile et structuré comme ci-après:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub Test()
    Dim Ch As Chart
    Dim Klr As Long
    Dim i As Integer
    Dim Categ As String
     
    Application.ScreenUpdating = False
    Set Ch = Worksheets("Feuil1").ChartObjects("Graphique 1").Chart             'Adapter nom de la feuille et nom du graphique
    With Ch.SeriesCollection(1)
        For i = 1 To .Points.Count
            Categ = Application.Index(.XValues, i)                              'Categ le libélé du point
            Select Case Categ
                Case "CATEGORIE1": Klr = RGB(31, 73, 125)
                Case "CATEGORIE2": Klr = RGB(128, 100, 162)
                Case "CATEGORIE3": Klr = RGB(0, 112, 192)
            End Select
            With .Points(i)
                .Format.Fill.ForeColor.RGB = Klr
                .Format.Line.ForeColor.RGB = Klr
            End With
        Next i
    End With
    Set Ch = Nothing
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre habitué Avatar de LouiMz
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 104
    Points : 154
    Points
    154
    Par défaut
    +1 merca ^^^

    Je pensais ne jamais avoir de réponse xD ^^
    C'est exactement ce que je recherche. Encore merci Je fais le petit +1 et le résolu du coup :-P
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recupérer le libellé des "Points" sur un graphique
    Par statista dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/07/2011, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo