Décharger un Userform et quitter la macro qui l'a appelé...
2 réponses
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 ???
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <Yvan@discussions.microsoft.com> a écrit dans le message de news:
2DB57AB6-067F-473B-8BB4-ACAB24465B77@microsoft.com...
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 ???
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.
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.
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 ???
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 ???