Sortir d'une procédure queryclose

Sortir d'une procédure queryclose - VB/VBA/VBS - Programmation

Marsh Posté le 22-08-2002 à 12:00:29    

Salut! :hello:
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 !  :wahoo:

Reply

Marsh Posté le 22-08-2002 à 12:00:29   

Reply

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.. .... (?)

Reply

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
:bounce: :bounce: :bounce:

Reply

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

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed