Vous avez deux façons de fermer un UserForm. Une façon est avec la méthode Unload (Décharger) et l’autre avec la méthode Hide (Masquer). Bien que les deux méthodes donnent l’impression que l’UserForm a disparu, elles exécutent chacune des instructions différentes. Cela peut être un point de confusion pour les programmeurs débutants, il est donc important de comprendre la distinction entre Décharger et Masquer.
1 Décharger un UserForm
Lorsque vous déchargez un UserForm, le formulaire se ferme et ses entrées sont effacées de la mémoire. Dans la plupart des cas, c’est ce que vous voulez: que les données entrées soient enregistrées d’une manière ou d’une autre, ou transmises à des variables publiques, puis fermées. L’instruction qui décharge un UserForm est simplement Unload Me, et elle est généralement associée à un CommandButton à cette fin, tel que le bouton Annuler qui a été placé sur l’exemple UserForm de cette leçon.
Supposons que vous souhaitiez décharger le UserForm lorsque vous cliquez sur le bouton Annuler. Un moyen rapide et facile de le faire est de double-cliquer sur le bouton de commande dans la conception de l’UserForm, comme le montre la figure 1.
Figure 1 Décharger le Userform avec le bouton Annuler
Lorsque vous double-cliquez sur le bouton de commande, vous voyez ces lignes de code dans le module UserForm:
Private Sub CommandButton2_Click() End Sub
Pour terminer la procédure Click, tapez Unload Me. Lorsque vous cliquez sur le bouton Annuler, l’UserForm se décharge – c’est-à-dire qu’il se ferme et libère de la mémoire les données qui ont été saisies – avec cet événement Click pour ce bouton:
Private Sub CommandButton2_Click() Unload Me End Sub
NOTE
Le mot-clé Me renvoie le nom de la fenêtre active.
2 Masquer un UserForm
La méthode Hide rend le UserForm invisible, mais les données qui étaient dans l’UserForm sont toujours là, restant en mémoire et peuvent être affichées lorsque le formulaire est à nouveau affiché. Dans certaines situations, vous souhaiterez que ce soit le cas, par exemple si vous interagissez avec deux ou plusieurs UserForms et que vous souhaitez que l’utilisateur se concentre sur un seul formulaire à la fois. L’instruction pour masquer un UserForm est Me.Hide.