Condition position souris sur un label [Résolu]

Messages postés
4
Date d'inscription
vendredi 2 mars 2012
Dernière intervention
2 mars 2012
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 2 mars 2012 à 19:13
Bonjour à tous,

Je suis un débutant en VBA et je bloque sur ce problème :

Je souhaiterai avoir une condition telle que :

Do while "la souris est sur le label" = true

' bloc de code

loop

J'utilise "Sub Label_MouseMove" pour activer le code mais je voudrai que ma boucle stoppe lorsque la souris n'est plus située sur le label.

Merci d'avance à tous pour vos réponses.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
4
Date d'inscription
vendredi 2 mars 2012
Dernière intervention
2 mars 2012
3
Merci
J'ai trouvé une solution :

sub truc_mousemove

i=1
do while i < 3

'bloc instruction

If i = 2 Then ' on fait ceci afin d'avoir une boucle infinie
i = 1
End If
i = i + 1

end
endsub


sub userform_mousemove
i=5
endsub

Ainsi la boucle tourne à l'infini mais lorsque la souris sort du label la condition n'est plus valide et elle le redevient lorsque la souris se remet dessus.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de ben29270
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Il est assez rare que lorsque la souris passe d'un contrôle à l'autre, elle ne passe pas par le Mouse_Move d'un autre objet (conteneur, qu'il soit un Form, un Frame ou une Picturebox).
C'est encore le plus simple !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
4
Date d'inscription
vendredi 2 mars 2012
Dernière intervention
2 mars 2012
0
Merci
Je ne comprend pas vraiment ce que vous dites.

Ici je cherche à ce que la boucle soit exécutée tant que la souris se situe sur le label.
Le fait que la souris passe sur le label lance une boucle dont la condition de sortie est que la souris ne soit plus sur le label.
Commenter la réponse de ben29270
Messages postés
4
Date d'inscription
vendredi 2 mars 2012
Dernière intervention
2 mars 2012
0
Merci
Est-ce qu'il existe des propriétés telles que je puisse faire ceci :

do while (label.bordgauche < position_souris) and (label.borddroit > position_souris) and (label.bordhaut < position_souris) and (label.bordbas > position_souris)

'bloc instruction

loop

?
Commenter la réponse de ben29270
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Que survoles-tu, lorsque tu ne survoles plus ton label ?
La réponse à cette question devrait te donner des idées, non ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Et je viens de découvrir qu'en plus, VB.Net gère déjà nativement tous ces évènements ! ===>>
Tapez le texte de l'url ici.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Midi à quatorze heures !
Réfléchis donc :
Une simple variable booléenne ===>> A true dans mouseenter, à false dans mouseleave et dans mousemove : ne rien faire si false


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.