déplacer une souris par VBa

M

Manu

Guest
Salut à tous !

une question qui peut être simple pour le commun des mortels excelliens (dont je ne fais pas partie)

comment déplacer la souris de manière à ce qu'elle pointe sur un textbox au sein d'un programme VB

ex:
- j'écris dans combobox1 le nom de la ville
cette info me rempli le textbox1 des différents contacts
- je met le focus sur textbox1
(jusque là tout va bien)
- je déplace la souris sur la listindex1 du textbox1
(là je sais pas)

merci de votre aide

soyez en récompensé jusqu'à la 100è génération......

Manu
 
P

Pascal76

Guest
Bonjour

Je ne sais pas si c'est que tu veux mets dans le menu Affichage tu as ordre de tabulation et tu choisis l'ordre de ton focus et ensuite tu n'as plus qu'à taper sur la touche TAB pour avancer dans cet ordre

Pascal
 
A

Arnaud

Guest
Salut :),
a chaque fois que je ne trouve pas la fonction que je veux en vb je cherche du côté du SDK car il y a tjs une solus :)
pour bouger le cuseur de ta souris utilise

Declare Function SetCursorPos Lib "user32" ( _
ByVal x As Long, _
ByVal y As Long) As Long
exemple ici
 
T

Ti

Guest
oui, sauf que ces fonctions ne te serviront à rien, au moins telles quelles. Il faut savoir ce que représentent des coordonnées d'écran et que leur récupération est tout ce qu'il y a de plus malaisé dans Excel qui n'a rien prévu pour ça.
D'une part, SetCursorPos et GetCursorPos travaillent par rapport à l'écran, mais les coordonnées de ton Combo sont données dans Excel par rapport à la fenêtre (c'est à dire à l'userform qui les contient généralement et encore, pour autant que ce combo ne soit pas dans un multipage ou un Frame).
Pour compliquer un peu les choses, les coordonnées renvoyées par GetCursorpos sont en pixel, quand celles d'Excel sont en Points. Donc tu files tout droit vers l'usine à gaz pour un résultat aléatoire.

Par expérience, je peux te dire que le fait que le curseur de la souris se déplace tout seul n'est pas vécu comme "confortable" par l'utilisateur, qui doit chercher alors où il est passé.
De toute façon, une fois que tu as mis le focus sur ton listbox, que tu as ajusté le listindex, tout est fait, il est donc inutile de promener sa souris en plus.
 
A

Arnaud

Guest
re,
"sauf que ces fonctions ne te serviront à rien" tu y va un peu fort la Ti :D
Comme je le disai prescedement, on peut tout faire avec les fonctions SDK donc on peut par exemple assez facilement récupérer le Handle d'une fenêtre et en même temps de récupérer ces coordonnés.
tu peut également lister tout les composant de cette fenêtre et récupérer leurs coordonées.
je ne dis pas que c'est simple mais si il tient a le faire, c au moins possible comme ça.
Après pour ce qui est de l'utilité de la chose je suis d'accord que cela ne soit pas très pratique d'avoir un prog qui bouge la souris a ta place mais bon c son prog ^^
 
T

Ti

Guest
c'est bien pour cela que j'ai ajouté "au moins telles quelles"
Ceci dit, ce n'est pas moi qui te contredirai quand tu dis qu'on peut tout faire, mais je sais aussi qu'on s'embarque souvent dans des trucs qui n'en valent pas forcément la peine, et c'est contre ça que je mets en garde Manu.
 
M

Manu

Guest
Vous disputez pas à cause de moi les gas .......

Qu'à cela ne tienne, si la fonctionnalitée permettant de manipuler les coordonnées de la souris grâce au VBa n'est pas confortable (je veux bien l'entendre mais j'essayerai quand même)

Elle est tout du moins formatrice......

Et pour un amateur à peine éclairé comme moi, tout ce qui est formateur est bon à prendre ( ou à apprendre ...... non!! ET à apprendre )

C'est sur ces bons mots que je souhaite bonne nuit à ceux qui me liront encore ce soir,
Et bonne continuation à tous les autres !

Manu
 

Discussions similaires

H
Réponses
19
Affichages
6 K

Statistiques des forums

Discussions
312 391
Messages
2 087 984
Membres
103 690
dernier inscrit
LeDuc