Partager via


Événement QueryClose

Se produit avant la fermeture d’un userForm .

Syntaxe

Private Sub UserForm_QueryClose(CancelAs Integer, CloseModeAs Integer)

La syntaxe de l'événement QueryClose présente les éléments suivants :

Élément Description
Cancel Le paramètre SyncSchedule indique ???. Les valeurs valides pour ce paramètre sont les suivantes : La définition de cet argument sur une valeur autre que 0 arrête l’événement QueryClose dans tous les formulaires utilisateur chargés et empêche la fermeture de UserForm et de l’application.
CloseMode Valeur ou constante indiquant la cause de l’événement QueryClose .

Valeurs de retour

L’argument CloseMode retourne les valeurs suivantes :

Constante Valeur Description
vbFormControlMenu 0 L'utilisateur a choisi la commande Fermer dans le menu Système du formulaire utilisateur.
vbFormCode 1 L'instruction Unload est appelée à partir du code.
vbAppWindows 2 La session active de l'environnement d'exploitation Windows se termine.
vbAppTaskManager 3 Le Gestionnaire de tâches de Windows ferme l'application.

Ces constantes sont répertoriées dans la bibliothèque d'objets Visual Basic pour Applications de l'Explorateur d'objets. Vous remarquerez que vbFormMDIForm est également spécifié dans l'Explorateur d'objets, mais sa prise en charge n'est pas encore assurée.

Remarques

Cet événement permet habituellement de s'assurer qu'il n'existe aucune tâche non terminée dans les formulaires utilisateur inclus dans une application avant sa fermeture. Par exemple, si un utilisateur n'a pas enregistré les nouvelles données d'un formulaire utilisateur, l'application peut l'inviter à effectuer cette opération.

Lorsqu'une application se ferme, vous pouvez utiliser la procédure événementielle QueryClose pour définir la propriété Cancel sur True, ce qui interrompt le processus de fermeture.

Exemple

Le code suivant force l’utilisateur à cliquer sur la zone cliente UserForm pour la fermer. Si l'utilisateur essaie d'utiliser le bouton Fermer dans la barre de titre, le paramètre Cancel est défini sur une valeur différente de zéro, pour en empêcher la fermeture. Toutefois, si l’utilisateur a cliqué sur la zone cliente, CloseMode a la valeur 1 et Unload Me est exécuté.

Private Sub UserForm_Activate()
    Me.Caption = "You must Click me to kill me!"
End Sub

Private Sub UserForm_Click()
  Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    'Prevent user from closing with the Close box in the title bar.
    If CloseMode <> 1 Then Cancel = 1
    Me.Caption = "The Close box won't work! Click me!"
End Sub

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.