OVH Cloud OVH Cloud

Décharger un Userform et quitter la macro qui l'a appelé...

2 réponses
Avatar
Yvan
Bonjour,

Une macro appelle un Userform dans lequel l'utilisateur effectue un choix.
Une fois le choix validé, le Userform se décharge et la macro poursuit son
traitement.

Mais si l'utilisateur veut revenir en arrière il peut cliquer sur le bouton
"Annuler". Le problème, c'est que le Userform se décharge, mais que la macro
poursuit également son traitement.

J'aurais donc voulu savoir s'il était possible d'indiquer dans le code du
Userfom :
- si clique sur bouton "Annuler", unload userform et quit la macro d'appel
???
- ou s'il faut le faire dans la macro d'appel, et de quelle façon ???

Merci.
--
Merci pour vos réponses.

2 réponses

Avatar
Daniel
Bonjour.
Il y a peut-être plus facile, mais je procède comme suit :
Dans le code du bouton :

Private Sub cbAnnul_Click()
Var = True
Unload Me
End Sub

Dans un module :

Public Var As Boolean
Sub appel()
UserForm1.Show
If Var = True Then Exit Sub
MsgBox "toto"
End Sub

Cordialement.
Daniel
"Yvan" a écrit dans le message de news:

Bonjour,

Une macro appelle un Userform dans lequel l'utilisateur effectue un choix.
Une fois le choix validé, le Userform se décharge et la macro poursuit son
traitement.

Mais si l'utilisateur veut revenir en arrière il peut cliquer sur le
bouton
"Annuler". Le problème, c'est que le Userform se décharge, mais que la
macro
poursuit également son traitement.

J'aurais donc voulu savoir s'il était possible d'indiquer dans le code du
Userfom :
- si clique sur bouton "Annuler", unload userform et quit la macro
d'appel
???
- ou s'il faut le faire dans la macro d'appel, et de quelle façon ???

Merci.
--
Merci pour vos réponses.


Avatar
anonymousA
Bonjour,

il y a plusieurs solutions possibles mais une solution absolument
radicale consiste à écrire une instruction End dans

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

End

End Sub

auquel cas l'intégralité de ta macro sera interrompue et les variables
toutes réinitialisées mais peut-être est ce que tu veux.
Autement, il y a des solutions plus souples du style avoir une variable
qui change d'état lors du QueryClose et qui est testée après ton
instruction d'affichage du UF. Si l'état est correct on poursuit la
macro sinon Exit Sub. Mais il y a bien d'autres possibilités

A+



Bonjour,

Une macro appelle un Userform dans lequel l'utilisateur effectue un choix.
Une fois le choix validé, le Userform se décharge et la macro poursuit son
traitement.

Mais si l'utilisateur veut revenir en arrière il peut cliquer sur le bouton
"Annuler". Le problème, c'est que le Userform se décharge, mais que la macro
poursuit également son traitement.

J'aurais donc voulu savoir s'il était possible d'indiquer dans le code du
Userfom :
- si clique sur bouton "Annuler", unload userform et quit la macro d'appel
???
- ou s'il faut le faire dans la macro d'appel, et de quelle façon ???

Merci.