Sortir d'une procédure queryclose - VB/VBA/VBS - Programmation
Marsh Posté le 22-08-2002 à 13:38:01
En VB, il me semble que dans l'évènement
Sub Form_QueryUnload (Cancel As Integer, UnloadMode As Integer)
si on met Cancel = 0 (ou 1, je me souviens plus), ça voulait dire qu'on refusait la commande (suite par ex à test "Voulez-vous vraiment quitter l'application ?" ).
Pour la suite, faudrait "Hider" la "form" principale, car si le "Cancel" est inhibé, on se retrouve comme "juste avant" le click sur la croix.....
Sub Form_QueryUnload (Cancel As Integer, UnloadMode As Integer)
Cancel = x (0 ou 1, je crois)
End sub
Le pb est que Cancel est actif quand on quitte ce sub => faut trouver où mettre l'affichage de la feuille "nouvelle".
Si QueryClose() appelle QueryUnload(), suffit de le mettre au retour du Unload.. .... (?)
Marsh Posté le 22-08-2002 à 14:35:21
IMPECCABLE !
Je te remercie, ça marche super !
En fait, c'était tout con : il suffisait de
taper "Cancel = 1" dans le sub "QueryClose".
Je pensais que le fait de faire ça allait
bloquer la croix pour de bon une fois que
j'aurais cliquer dessus : mais non !!!
Merci CARBON_14
Marsh Posté le 25-08-2006 à 15:23:46
Comment tu fais ensuite pour fermer ta première UserForm?
Parce que je fais faire comme toi si j'ai bien compris ce que tu as fait : quand tu cliques sur la croix, tu ouvres une UserForm qui te demande de confirmer que tu veux bien quitter. Si là-deedans tu cliques sur annuler tu arrêtes la fermeture, et si tu cliques sur fermer tu fermes.
Mon problème c'est que quand je cliquer sur quitter, je fais
Unload Userform_calcul (la première user form
Unload Userform_fermeture
mais il ne me ferme que fermeture, et pas ma userform principal
Marsh Posté le 28-08-2006 à 11:36:25
Pour plus de clarté, je joins le code :
Dans la UserForm à fermer (UserForm_calcul):
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = 0
If CloseMode = 0 Then
Cancel = 1
UserForm_fermeture.Show
Else
Cancel = 0
End If
End Sub
Et dans la UserForm qui s'ouve (UserForm_fermeture) :
Private Sub CommandButton_quitter_Click()
Unload UserForm_fermeture
Unload UserForm_calcul
End Sub
Marsh Posté le 22-08-2002 à 12:00:29
Salut!
Une petite question : peut-on sortir d'une procédure
QueryClose sans que l'issue finale soit forcément la
fermeture de l'application.
Je m'explique : je veux faire apparaitre un nouveau Userform
lorsque je clique sur la croix en haut à droite du
Userform précédent (c'est clair ?)
C'est une sorte de fenêtre de validation si on veut...
Bref, lorsque cette validation est refusée, je voudrais
revenir au Userform précédent (le premier).
Le problème, c'est que pour l'afficher, je dois écrire la
commande dans le Userform_QueryClose du premier.
Donc, quand la validation est refusée, ça revient à cette
procédure et ça ferme l'application.
Moi, je veux juste rester sur le Userform de départ.:gun:
Quelle commande dois-je taper pour obtenir cela ?
Merci d'avance !