Monsieur Excel
Pour tout savoir faire sur Excel !

10 octobre 2011

Le cours d’une action, en mieux…

Suite à l’article précédent, j’ai eu le plaisir de recevoir une proposition de Claude Duigou, qui résout en bonne partie le problème soulevé. Nous voyons ci-dessous le résultat obtenu : on sélectionne la zone du graphe, puis on balade le curseur le long du graphe : le titre du graphe s’adapte alors en temps réel et affiche la date et la valeur.

Comme on le voit ci-dessus, ces informations apparaissent aussi dans le graphe à la hauteur du point, mais seulement après un certain temps d’attente, pas immédiatement comme pour le titre.

Pour obtenir ce résultat, il a fallu créer – liée au classeur – la macro suivante :

Dim ClasseGraphique As New GraphiqueEvenement

Private Sub Workbook_Open()

Set ClasseGraphique.MonGraphique = ActiveSheet.ChartObjects(1).Chart

End Sub

Et en plus, dans un module de classe, la macro suivante :

Public WithEvents MonGraphique As Chart

Private Sub MonGraphique_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)

Dim lngElement As Long

Dim Arg1 As Long

Dim Arg2 As Long

MonGraphique.GetChartElement x, y, lngElement, Arg1, Arg2

If lngElement = xlSeries Then

ActiveSheet.Range("DateJour").Value = ActiveSheet.Cells(Arg2 + 1, 1).Value

ActiveSheet.Range("Valeur").Value = ActiveSheet.Cells(Arg2 + 1, 2).Value

End If

End Sub

La seule chose qui manque encore, par rapport à l’original sur Boursorama, est le marquage par un gros point rouge de la valeur active correspondante dans le graphe.

Dans la solution que je proposais il y a quatre jours, il y avait le point (mais ni gros ni rouge), mais en revanche on ne pouvait pas simplement passer la souris sur le graphe : il fallait utiliser le curseur pour passer d'un point à un autre…

1 Commentaire(s):

Enregistrer un commentaire

<< Accueil