Problème macro MouseMove

iwarren

XLDnaute Nouveau
vba erreur d'exécution macro évènement souris MouseMove sur objet graphique

Bonjour le Forum!

Actuellement en stage en entreprise je travaille en partie sur des graphiques avec Excel 2003. Mon travail consiste à modifier la présentation des graphiques, à les rendre plus souples, évolutifs.
J'ai découvert ce forum au cours de mes recherches concernant Excel, et je me suis rapidement intéressé aux macros avec Visual Basic et aux possibilités qu'elles offraient.:D
Ce forum est vraiment très riche en astuces, conseils et j'y ai trouvé de bons exemples de macros à adapter à mes besoins, notamment concernant des "CheckBox" (elles sont peut être à améliorer au niveau de la rédaction du code).

Débutant sur Visual Basic je ne connais pas bien le langage utilisé mais je commence à avoir quelques notions.

Je suis actuellement bloqué au niveau d'une macro utilisant l'évènement souris "MouseMove".
J'ai essayé d'adapter à mon graphique une macro de Laurent Longre, macro qui fonctionne avec une série de données et dont j'ai joint le fichier.
Lorsque je pointe le curseur de la souris sur le graphique, cette macro me permet de voir les coordonnées du point ainsi que plusieurs autres informations le concernant, situées sur la même ligne du tableau.

Mais le problème est que, dans mon cas, cela marche avec la première série du tableau, la seconde et la dernière. Par contre cela ne marche pas pour le reste.:confused: N'ayant pas les compétences pour déchiffrer entièrement le code, je ne trouve pas la solution à mon problème. J'ai 15 séries de données sur mon graphique.

Voici le code de la macro que j'utilise, certains pourront certainement m'aider sans devoir télécharger les pièces jointes; le code est déclaré dans un module de classe:

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

Dim ElementID As Long, SeriesIndex As Long, PointIndex As Long
Dim S As Series, I As Integer, J As Integer, Form As String
Dim CellX As Range, CellY As Range

Graph.GetChartElement x, y, ElementID, SeriesIndex, PointIndex

If ElementID = xlSeries Then
Form = Graph.SeriesCollection(SeriesIndex).Formula
I = InStr(1, Form, ",") + 1
J = InStr(I, Form, ",") + 1
Set CellX = Range(Mid$(Form, I, J - I - 1))(PointIndex)
Set CellY = Range(Mid$(Form, J, InStr(J, Form, ",") - J))(PointIndex)[/COLOR]
Application.StatusBar = "Nom Prénom: " & CellX(1, -4) & " | Responsable: " & CellX(1, -5) & " | JA: " & Format(CellX(1, -3), "####0.O") & " | AFF: " _
& Format(CellX(1, 0), "####0.00") & " | CLO: " & Format(CellX, "###0.00")

Else: Application.StatusBar = False

End If

End Sub

Il semble que le problème vienne de la partie du code que j'ai mis en rouge mais je ne suis pas sûr.

Pouvez-vous m'aider?

Merci par avance.
 

Pièces jointes

  • llpdfc-etiquettesperso.xls
    43.5 KB · Affichages: 97
  • checkbox+MouseMove(1).zip
    39.2 KB · Affichages: 50
Dernière édition:

Statistiques des forums

Discussions
312 489
Messages
2 088 850
Membres
103 974
dernier inscrit
chmikha