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

Excel Discussion :

Comment modifier les informations d'un point d'un graphique excel ?


Sujet :

Excel

  1. #1
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut Comment modifier les informations d'un point d'un graphique excel ?
    Bonjour,

    peut être pouvez vous me donner un lien ou m'aider à faire la manipulation suivante sous excel ou sous vba:

    Sur un graphique lorsque l'on pointe le curseur de la souris sur un point de la série puis que l'on fait click gauche les informations du point apparaissent par exemple:

    Pour le 1° point : Série "1" Point "0" (0,00, 18,97)
    Pour le 2° point : Série "1" Point "1" (1,00, 19,07)
    ...

    Est il possible de faire?
    Pour le 1° point : Série "1" Point "0" (42780,00, 18,97)
    Pour le 2° point : Série "1" Point "1" (42781,00, 19,07)

    Perso je sais identifier le point(i) sous vba du style:
    Set info_point = .Points(i)
    '- : info_point : : Variant/Object/Point
    ' - : DataLabel : : DataLabel/DataLabel
    ' + : Fill : : ChartFillFormat/ChartFillFormat
    ' + : Format : : ChartFormat/ChartFormat
    ' : MarkerBackgroundColor : -1 : Long
    ' : MarkerBackgroundColorIndex : 2 : XlColorIndex
    ' : MarkerForegroundColor : -1 : Long
    ' : MarkerForegroundColorIndex : 2 : XlColorIndex

    Mais pas moyen de trouver ses caractéristiques pour les modifier...
    Merci de votre aide...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par itwoo Voir le message
    Bonjour,

    Le code ci-dessous est tiré de la FAQ Excel Graphique, notamment une adaptation de NumColSerieGraph de SilkyRoad

    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
     
    Sub Test() 
     
        With Range(RecupPlageDonnesGraph(ActiveSheet.ChartObjects(1), 1)) ' A adapter
            MsgBox ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Formula
            MsgBox .Cells(1, 1)
            MsgBox .Cells(2, 1)
        End With
     
    End Sub
     
     
    Function RecupPlageDonnesGraph(Ch As ChartObject, NumSerie As Integer) As String ' De SilkyRoad
        Dim Tableau() As String
     
        Tableau = Split(Ch.Chart.SeriesCollection(NumSerie).Formula, ",")
        RecupPlageDonnesGraph = Tableau(2)
     
    End Function
    Pour avoir testé sur un graphique nuage de points et sauf erreur de ma part, vous essayez d'accéder aux 42780éme et 42781ème points de votre série. Que souhaitez-vous faire réellement ?

    S'il s'agit de travailler avec les cellules correspondant à ces deux points s'ils existent :

    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
     
     Sub TestModif()
     
         With Range(RecupPlageDonnesGraph(ActiveSheet.ChartObjects(1), 1))
            With .Cells(42780, 1)
            '....
            End With
     
     
            With .Cells(42781, 1)
            '....
            End With
     
        End With
     
    End Sub

  3. #3
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour,

    Tout d'abord merci de m'aider car je séche depuis plus de 6 mois sur ce point qui semble tout simple: avoir la bonne équation avec la bonne ordonnée à l'origine même si le 1° X <> 0 (ce 1° X devrait cependant être compris comme étant 0)
    En fait le but est de modifier l'information du point sur le graphique pour contourner ce problème.
    Jusqu'à présent pas moyen d'obtenir la bonne ordonnée à l'origine autrement que par une modification trés tordue entre 2 graphiques...le 1° graphique est le bon mais n'a pas la bonne ordonnée à l'origine, le 2° n'est pas tout à fait le bon (décalage à x=0)mais il a la bonne ordonné à l'origine, ensuite je mélange les 2 pour avoir la bonne ordonnée à l'origine sur le bon graphique, ce n'est pas trés propre comme système...

    Voici un petit fichier excel joint avec des explications
    la bonne équation est : y= 0.0121 x + 18.766

    merci pour les liens et le code je vais regarder aussi...

    graphiquehelp1.xls

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par itwoo Voir le message
    Regardez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub Macro2()
     '   ActiveChart.Axes(xlCategory).MinimumScale = 42765
        ActiveChart.Axes(xlCategory).MinimumScale = 42767
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par itwoo Voir le message
    Et compte tenu de la façon dont vous avez construit la série :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub ModifierLOrigineDeLEchelle()
     
    Dim Tableau() As String
     
        With ActiveChart
             Tableau = Split(.SeriesCollection(1).Formula, ",")
             .Axes(xlCategory).MinimumScale = Mid(Tableau(1), 2)
        End With
     
    End Sub

  6. #6
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour,

    Merci pour l'aide mais pour l'instant je n'ai pas réussi à obtenir y= 0.0121 x + 18.766 sur le graph1, rien ne change...

    Pour ActiveChart.Axes(xlCategory).MinimumScale = 42767 cela permet de déplacer le 1° X à X=42767 sur le graphique mais malgré plusieurs tentatives de placer cette ligne de code un peu partout pour le graph1, cela ne change rien au calcul de l'ordonnée à l'origine qui est toujours faux. En effet pour le calcul pour excel le X=0 du calcul reste X=0 et non X=42767
    Pour le graphe 2 cela déplace X=0 en X=42767 donc la courbe n'est plus visible...

    PS: ici il faut adapter Tableau = Split(.SeriesCollection(1).FormulaLocal, ",") car Formula ne marche pas

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par itwoo Voir le message
    Merci pour l'aide mais pour l'instant je n'ai pas réussi à obtenir y= 0.0121 x + 18.766 sur le graph1, rien ne change...


    Après plusieurs échanges avec itwoo, la solution pourrait être celle montrée dans le vidage d'écran ci-dessous :

    Pièce jointe 300707

    Le code ci-dessous réalise cette modification :

    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
     
    Sub ChangementValeurEquation(ByVal GraphiqueSource As Chart, ByVal GraphiqueCible As Chart, ByVal NumeroSerie As Integer)
     
    Dim CourbeSource As Trendline, CourbeCible As Trendline
    Dim MonEquation As Variant
     
        Set CourbeSource = GraphiqueSource.SeriesCollection(NumeroSerie).Trendlines(1)
        With CourbeSource
             .DataLabel.Select
             MonEquation = Selection.Caption
        End With
     
        GraphiqueCible.Activate
     
        Set CourbeCible = GraphiqueCible.SeriesCollection(NumeroSerie).Trendlines(1)
        With CourbeCible
             .DataLabel.Select
             .DataLabel.Text = MonEquation
        End With
     
        Set CourbeSource = Nothing
        Set CourbeCible = Nothing
     
    End Sub

  8. #8
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    Bonjour Eric,

    Oui malgré tout, pour le moment pas moyen de faire mieux que cette bidouille ou une autre...on va mettre résolu même si ce n'est pas parfait.

    Par contre si quelqu'un a mieux c'est avec plaisir...

    PS : Solution perso retenue, calculer directement dans le code VBA grâce aux outils excel la bonne équation et ensuite l’injecter sur le graphique mais ce n'est pas parfait non plus...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par itwoo Voir le message
    Salut Itwoo,

    Je n'aurais pas utilisé le terme de "bidouille" pour qualifier une méthode basée sur un raisonnement par récurrence. J'aurais plutôt utilisé le terme "substitut".

  10. #10
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2013
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 411
    Points : 231
    Points
    231
    Par défaut re
    oui tu as raison bidouille ca fait péjoratif, substitut ou astuce

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

Discussions similaires

  1. Comment modifier les points d'un espace réservé?
    Par ionah dans le forum VBA PowerPoint
    Réponses: 5
    Dernier message: 09/07/2015, 20h03
  2. comment modifier les données d'une table à travers un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 12
    Dernier message: 19/07/2005, 09h51
  3. comment modifier les attributs d'un fichier?
    Par kamal101 dans le forum C++
    Réponses: 1
    Dernier message: 18/03/2005, 14h16
  4. Réponses: 5
    Dernier message: 16/03/2005, 22h17
  5. Comment modifier les .pas fournis avec Delphi ?
    Par prgasp77 dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2005, 15h12

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