Besoin d'explications pour un un code existant

Fermé
PhenlKs Messages postés 16 Date d'inscription lundi 25 avril 2016 Statut Membre Dernière intervention 6 mars 2018 - 24 mai 2016 à 09:34
PhenlKs Messages postés 16 Date d'inscription lundi 25 avril 2016 Statut Membre Dernière intervention 6 mars 2018 - 24 mai 2016 à 16:50
Bonjour,
Que je vous explique, j'ai un graphique avec 6 séries de données qui donne pour chacune le nombre d'heure en service (ce sont des véhicules) en fonction de la semaine.

Ce que je souhaiterai, c'est qu'en coloriant une des cellules d'une de mes séries, le point correspondant apparaisse sur la courbe et lui seul (c'est juste une ligne pour l'instant étant donné qu'il y a beaucoup de données).

Dans l'absolu il pourrait y avoir un point par courbe (il correspond à la dernière visite aux ateliers)

J'ai trouvé ce petit bout de code suite à mes pérégrinations sur internet, cependant il change la couleur d'une donnée selon la valeur (je crois):
Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
   If ElementID = 3 And Arg2 > 0 Then
      x = Application.Index(ActiveChart.SeriesCollection(1).XValues, Arg2)
      y = Application.Index(ActiveChart.SeriesCollection(1).Values, Arg2)
      If Not Sheets(1).Cells(Arg2 + 1, 1).Comment Is Nothing Then
        Sheets(2).Shapes("monshape").TextFrame.Characters.Text = _
          "Point: " & Arg2 & " x=" & x & " y=" & y & _
           Chr(10) & Sheets(1).Cells(Arg2 + 1, 1).Comment.Text
      End If

      For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
        ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 36
      Next i
      ActiveChart.SeriesCollection(1).Points(Arg2).Interior.ColorIndex = 4
    End If
 End Sub


Le problème étant que je ne comprends pas tout loin de là... Est-ce que vous pourriez le commenter et/ou expliquer la syntaxe.
Je donne le lien de la page, le code est tout en bas.
http://boisgontierjacques.free.fr/pages_site/graphiques.htm


Mes données sont sur une feuille "Relevés" et le graph sur la feuille "Graph AST".


Voilà ma situation donc si quelqu'un peut m'aider il est le bienvenue ! Et je reste à dispo pour tout éclaircissement supplémentaire.

Merci d'avance.

P.S: Je ne peux pas vous donner le fichier malheureusement.
A voir également:

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 mai 2016 à 10:13
Bonjour,

Le plus simple pour commencer, lorsqu'on ne comprend pas à quoi sert une instruction dans le code, il suffit de la sélectionner puis de faire un "F1" (sur le clavier) pour afficher l'aide qui s'y rapporte....
Cela devrait grandement t'aider à comprendre le code.

Ensuite, si certains point restent obscurs.. n'hésites pas à revenir en nous indiquant exactement quelles lignes te posent problème.



J'ai trouvé ce petit bout de code suite à mes pérégrinations sur internet, cependant il change la couleur d'une donnée selon la valeur (je crois):


Non.. comme indiqué juste au dessus du charte :
On modifie la couleur du point séléctionné.

(et indique, dans le champ texte qui se situe dans le coin haut gauche du graph... les coordonnées du point sélectionné.


Pour te faire l’explication de ce code :
Private Sub Chart_Select

Fonction qui se déclenche lorsqu'on selectionne le graphique (qu'on clique dessus)


 x = Application.Index(ActiveChart.SeriesCollection(1).XValues, Arg2)
 y = Application.Index(ActiveChart.SeriesCollection(1).Values, Arg2)

Coordonnées du point cliqué

 If Not Sheets(1).Cells(Arg2 + 1, 1).Comment Is Nothing Then
        Sheets(2).Shapes("monshape").TextFrame.Characters.Text = _
          "Point: " & Arg2 & " x=" & x & " y=" & y & _
           Chr(10) & Sheets(1).Cells(Arg2 + 1, 1).Comment.Text
      End If

Remplissage du champ "text" avec les coordonnées


 For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
        ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 36
      Next i

Mettre dans la couleur code 36 (jaune) tous les points du graph

 ActiveChart.SeriesCollection(1).Points(Arg2).Interior.ColorIndex = 4

Mise en couleur code 4 (en vert) du point selectionné
1
PhenlKs Messages postés 16 Date d'inscription lundi 25 avril 2016 Statut Membre Dernière intervention 6 mars 2018
24 mai 2016 à 16:50
Ok, je comprends certains points, par contre il reste des zones d'ombre :

Les coordonnées du point, il faut aller cliquer dessus dans l'autre classeur ? Dans ce cas comment lancer la macro ? Je dois faire un bouton du coup ?

Et l'autre problème, c'est que je voudrais que seul le point sélectionné apparaisse sur ma courbe et pas les autres.. (sinon on ne voit même plus la courbe tellement il y a de points..)

Merci :)
0