Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MouseMove inopérent après double click!

3 réponses
Avatar
Frédéric
Bonjour,
Ce sujet donne suite à celui que j'ai écrit hier "Problème de Focus, ou
d'Activation entre 2 Userforms", auquel je remercie LSteph et Michel d'avoir
répondu correctement. Mais je n'avais pas suffisamment bien precisé le
problème, et je l'ai toujours!

La manip suivante prend une minute :

Créez 2 Userforms.
Dans le premier, insérez 2 labels et 1 bouton, et copiez le code suivant :

Private Sub CommandButton1_Click()
UserForm2.Show
End Sub

Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.Show
End Sub

Private Sub Label2_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
MsgBox "Titi"
End Sub

Dans le deuxième, créez juste 1 bouton, avec le code suivant :

Private Sub CommandButton1_Click()
Me.Hide
End Sub

Le problème :
- Quand vous lancez le userform2 par le clic sur le bouton de la userform1,
à la fermeture du userform2 (par son bouton), l'évènement MouseMove sur le
Label2 marche parfaitement.
- Quand vous lancez le userform2 par un doubleclic sur le label1 de la
userform1, à la fermeture du userform2 (par son bouton), l'évènement
MouseMove sur le Label2 ne fonctionne plus!! Et au passage, même un simple
clic sur le bouton du userform1 reste sans effet.... Il faut d'abord cliquer
une fois n'importe où dans le userform1, pour qu'ensuite le mousemove sur le
label2 ou le clic sur le bouton fonctionnent à nouveau....

Donc la question est : savez vous comment faire pour s'affranchir de ce
problème?
En espérant avoir été suffisamment précis.
Merci d'avance!

3 réponses

Avatar
Michel Pierron
Re Frédéric; comme ceci pour un fonctionnement correct.
Premier UserForm:
Private Sub CommandButton1_Click()
Me.Hide
UserForm2.Show
End Sub

Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.Hide
UserForm2.Show
End Sub

Deuxième UserForm:
Private Sub CommandButton1_Click()
Me.Hide
UserForm1.Show
End Sub

MP

"Frédéric" a écrit dans le message de
news:
Bonjour,
Ce sujet donne suite à celui que j'ai écrit hier "Problème de Focus, ou
d'Activation entre 2 Userforms", auquel je remercie LSteph et Michel
d'avoir

répondu correctement. Mais je n'avais pas suffisamment bien precisé le
problème, et je l'ai toujours!

La manip suivante prend une minute :

Créez 2 Userforms.
Dans le premier, insérez 2 labels et 1 bouton, et copiez le code suivant :

Private Sub CommandButton1_Click()
UserForm2.Show
End Sub

Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.Show
End Sub

Private Sub Label2_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
MsgBox "Titi"
End Sub

Dans le deuxième, créez juste 1 bouton, avec le code suivant :

Private Sub CommandButton1_Click()
Me.Hide
End Sub

Le problème :
- Quand vous lancez le userform2 par le clic sur le bouton de la
userform1,

à la fermeture du userform2 (par son bouton), l'évènement MouseMove sur le
Label2 marche parfaitement.
- Quand vous lancez le userform2 par un doubleclic sur le label1 de la
userform1, à la fermeture du userform2 (par son bouton), l'évènement
MouseMove sur le Label2 ne fonctionne plus!! Et au passage, même un simple
clic sur le bouton du userform1 reste sans effet.... Il faut d'abord
cliquer

une fois n'importe où dans le userform1, pour qu'ensuite le mousemove sur
le

label2 ou le clic sur le bouton fonctionnent à nouveau....

Donc la question est : savez vous comment faire pour s'affranchir de ce
problème?
En espérant avoir été suffisamment précis.
Merci d'avance!




Avatar
Frédéric
Ok, ca marche.
Mais comme il faut que mon userform1 reste toujours affiché (pour une
question esthétique, il s'agit en vrai d'une fenêtre de navigation), je vais
plutôt opter pour qqchose du style :

Deuxième UserForm:
Private Sub CommandButton1_Click()
Me.Hide
UserForm1.Hide
UserForm1.Show
End Sub

On observe un léger "clignotement" du Userform1 du coup, mais bon, c'est
acceptable, et moins génant que de perdre le mousemove...
Merci


Re Frédéric; comme ceci pour un fonctionnement correct.
Premier UserForm:
Private Sub CommandButton1_Click()
Me.Hide
UserForm2.Show
End Sub

Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.Hide
UserForm2.Show
End Sub

Deuxième UserForm:
Private Sub CommandButton1_Click()
Me.Hide
UserForm1.Show
End Sub

MP

"Frédéric" a écrit dans le message de
news:
Bonjour,
Ce sujet donne suite à celui que j'ai écrit hier "Problème de Focus, ou
d'Activation entre 2 Userforms", auquel je remercie LSteph et Michel
d'avoir

répondu correctement. Mais je n'avais pas suffisamment bien precisé le
problème, et je l'ai toujours!

La manip suivante prend une minute :

Créez 2 Userforms.
Dans le premier, insérez 2 labels et 1 bouton, et copiez le code suivant :

Private Sub CommandButton1_Click()
UserForm2.Show
End Sub

Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.Show
End Sub

Private Sub Label2_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
MsgBox "Titi"
End Sub

Dans le deuxième, créez juste 1 bouton, avec le code suivant :

Private Sub CommandButton1_Click()
Me.Hide
End Sub

Le problème :
- Quand vous lancez le userform2 par le clic sur le bouton de la
userform1,

à la fermeture du userform2 (par son bouton), l'évènement MouseMove sur le
Label2 marche parfaitement.
- Quand vous lancez le userform2 par un doubleclic sur le label1 de la
userform1, à la fermeture du userform2 (par son bouton), l'évènement
MouseMove sur le Label2 ne fonctionne plus!! Et au passage, même un simple
clic sur le bouton du userform1 reste sans effet.... Il faut d'abord
cliquer

une fois n'importe où dans le userform1, pour qu'ensuite le mousemove sur
le

label2 ou le clic sur le bouton fonctionnent à nouveau....

Donc la question est : savez vous comment faire pour s'affranchir de ce
problème?
En espérant avoir été suffisamment précis.
Merci d'avance!









Avatar
Stéphan DuQuébec
Si tu veux éviter le léger désagrément du clignotement:

Application.screenupdate = False à mettre avant ton Hide.

Application.screenupdate = true à mettre après ton show.

Ciao !


Ok, ca marche.
Mais comme il faut que mon userform1 reste toujours affiché (pour une
question esthétique, il s'agit en vrai d'une fenêtre de navigation), je vais
plutôt opter pour qqchose du style :

Deuxième UserForm:
Private Sub CommandButton1_Click()
Me.Hide
UserForm1.Hide
UserForm1.Show
End Sub

On observe un léger "clignotement" du Userform1 du coup, mais bon, c'est
acceptable, et moins génant que de perdre le mousemove...
Merci


Re Frédéric; comme ceci pour un fonctionnement correct.
Premier UserForm:
Private Sub CommandButton1_Click()
Me.Hide
UserForm2.Show
End Sub

Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.Hide
UserForm2.Show
End Sub

Deuxième UserForm:
Private Sub CommandButton1_Click()
Me.Hide
UserForm1.Show
End Sub

MP

"Frédéric" a écrit dans le message de
news:
Bonjour,
Ce sujet donne suite à celui que j'ai écrit hier "Problème de Focus, ou
d'Activation entre 2 Userforms", auquel je remercie LSteph et Michel
d'avoir

répondu correctement. Mais je n'avais pas suffisamment bien precisé le
problème, et je l'ai toujours!

La manip suivante prend une minute :

Créez 2 Userforms.
Dans le premier, insérez 2 labels et 1 bouton, et copiez le code suivant :

Private Sub CommandButton1_Click()
UserForm2.Show
End Sub

Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.Show
End Sub

Private Sub Label2_MouseMove(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
MsgBox "Titi"
End Sub

Dans le deuxième, créez juste 1 bouton, avec le code suivant :

Private Sub CommandButton1_Click()
Me.Hide
End Sub

Le problème :
- Quand vous lancez le userform2 par le clic sur le bouton de la
userform1,

à la fermeture du userform2 (par son bouton), l'évènement MouseMove sur le
Label2 marche parfaitement.
- Quand vous lancez le userform2 par un doubleclic sur le label1 de la
userform1, à la fermeture du userform2 (par son bouton), l'évènement
MouseMove sur le Label2 ne fonctionne plus!! Et au passage, même un simple
clic sur le bouton du userform1 reste sans effet.... Il faut d'abord
cliquer

une fois n'importe où dans le userform1, pour qu'ensuite le mousemove sur
le

label2 ou le clic sur le bouton fonctionnent à nouveau....

Donc la question est : savez vous comment faire pour s'affranchir de ce
problème?
En espérant avoir été suffisamment précis.
Merci d'avance!