Bonjour,
Dans le cadre de mon stage, je suis amené à coder en VBA, langage que je ne connaissais pas du tout et que je trouve à présent génial! Cependant, je rencontre une grosse difficulté :
Je souhaite récupérer les coordonnées de deux points choisis par l'utilisateur, pour cela j'utilise la fonction GetCursorPos puis je fais appel à la fonction ActiveSheet.Shapes.AddLine pour tracer une ligne entre ces deux points mais au final j'obtiens une ligne qui n'est pas du tout au bon endroit, de même lorsque je souhaite tracer un cercle en prenant comme centre un point choisi par l'utilisateur avec la fonction ActiveSheet.Shapes.AddShape.
J'ai essayé de changer l'origine du repère et de convertir les coordonnées obtenues par GetCursorPos en Pixels (et en Twisps car je ne sais pas en quelle échelle sont les résultats de la fonction GetCursorPos) mais je n'ai eu aucun bons résultats. Voici mon code
Vous remarquerez surement que la façon dont je demande à l'utilisateur de choisir ces points est un petit peu étrange, en effet je n'ai pas trouvé comment obtenir les coordonnées d'un point en cliquant dessus, si vous avez également une solution pour ce problème je suis également preneur
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
25
26 Option Explicit Private Type POINTAPI X As Long Y As Long End Type Global pt1 As POINTAPI Global pt2 As POINTAPI Sub Add_pipe() MsgBox "Placez votre curseur à l'endroit du 1er point de votre canalisation et appuyez sur entrée" ' L'utilisateur choisit le 1er point pour tracer la canalisation GetCursorPos pt1 MsgBox "Placez votre curseur à l'endroit du 2eme point de votre canalisation et appuyez sur entrée" ' L'utilisateur choisit le 2eme point de la canalisation qui sera relié au 1er point pour tracer la canalisation GetCursorPos pt2 ActiveSheet.Shapes.AddLine(pt1.X, pt1.Y, pt2.X, pt2.Y).Select End Sub
Merci pour votre aide
Partager