Probleme d'un pointage de souris sur un graphe

titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007 - 17 août 2005 à 15:14
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007 - 18 août 2005 à 10:51
Bonjour,

J'ai un graph 2D basique de coordonnées (x,y), ce que j'aimerais c'est que quand je clique sur un point du graph, les coordinnées du point cliqué s'inscrivent dans une cellule.

Comment faire? Merci d'avance.

10 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 15:34
Ben dans l'événement Mouse_Down tu peux récupèrer les coordonnées auxquelles la souris à cliqué...

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
17 août 2005 à 15:39
j'essaye et te donne des nouvelles
merci
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
17 août 2005 à 16:15
En fait ça marche pas
j'ai crée dans un classeur un graph.
j'ai rentré ce code de l'aide d'excel dans un module:
Private Sub Chart_MouseDown(ByVal Button As Long, _
        ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
MsgBox "Button = " & Button & chr$(13) & _
        "Shift = " & Shift & chr$(13) & _ 
        "X " & X & " Y " & Y


End Sub

et rien ne se passe
peux tu m'aider

merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 16:30
Il ne faut pas le mettre dans un module, il faut le mettre dans l'événement MouseDown de ton picturebox !

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
17 août 2005 à 16:38
mon picture box c'es un graph excel et je ne vois comment mettre un evenement à excel

merci
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
17 août 2005 à 16:39
a un graph et non a excel pour l'evenement pardon
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 16:43
Arf, ben là alors, c'est différent !



Utilise la fonction de l'API Windows GetCursorPos pour récupèrer les coordonnées de la souris sur l'écran.



Ensuite, il faut récupèrer les coordonnées de ton graph sur l'écran, et
ensuite, calculer les coordonnées sur le graph à partir des coordonnées
écran récupèrée.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
17 août 2005 à 16:47
Désolé mais je ne connais pas cette fonction je ne comprend pas ce que tu dis
Mais il y a un probleme si je change d'écran

non?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 16:54
lol, ca n'a rien à voir avec ton écran physique ! Ca juste à voir avec
la surface complète de ton écran, et non uniquement la fenêtre excel.



La fonction GetCursorPos permet de récupèrer les coordonnées actuelles
de la souris, donc il te suffit de les récupèrer lors d'un clic sur le
graph pour savoir où est-ce que la souris a cliqué.



Le problème qui se pose alors, vu que les coordonnées sont relatives à
l'écran et non à la fenêtre d'excel, les coordonnées que tu récupère ne
seront pas les coordonnées du clic sur le graph, mais les coordonnées
du clic sur Excel, et il faudras convertir les coordonnées fécran en
coordonnées clientes.


Exemple d'utilisation de GetCursorPos venant de mon viewer d'api :



'TESTE ET APPROUVE SOUS VB 6 et Windows XP



'Contrôle nécessaire : un bouton de commande nommé Command1.



'Ce code vous permet de déplacer la feuille aux coordonnées de la souris et de tracer l'image du bureau dans celle-ci.



'Pour faire fonctionner le programme il vous suffit de cliquer sur le
bouton de commande, sans le relacher, puis de positionner la souris à
l'endroit voulu, et enfin de le relâcher.



Private Declare Function PaintDesktop Lib "user32" ( _

ByVal hdc As Long) As Long



Private Declare Function GetCursorPos Lib "user32" ( _

lpPoint As POINTAPI) As Long



Private Type POINTAPI

X As Long

Y As Long

End Type



Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)



Dim PNT_Position As POINTAPI



'on récupère la position du curseur

GetCursorPos PNT_Position



'on déplace la feuille ainsi que la picturebox à la position de la souris

Me.Move Me.ScaleX(PNT_Position.X, vbPixels, vbTwips), Me.ScaleY(PNT_Position.Y, vbPixels, vbTwips)



'on enlève l'ancienne image

Me.Picture = LoadPicture("")



'on copie l'image du bureau dans les picture box



PaintDesktop Me.hdc



End Sub





Private Sub Form_Load()



'initialisation de la feuille

Me.ScaleMode = vbPixels

Me.AutoRedraw = False

Me.BorderStyle = 0



End Sub




DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
18 août 2005 à 10:51
J'ai essayé autrement , je n'est pas tous saisi a ton prog je suis pas trés doué dsl

mon graph est en fait un graphique fait dans excel dont l'emplacement est une autre feuille et non pas en petit a coté des données
Il apparait donc dans l'explorateur d'objet VBA et je peux lui associé l'evenement Mouse_Down
Le probleme c'est qu'on me donne les coordonnées de l'ecran à partir du coin en haut à gauche et non celles du graph.

Comment faire pour que l'origine de mon repere soit celle du graph
(sachant que je dois l'appliquer à une cinquantaine de garph et sur des ecrans tous differents(15" 17" 21"19" plat et catodique)

Merci
0
Rejoignez-nous