Utiliser plusieurs formulaires personnalisé ou Userform (Fenêtre modale), Excel VBA

Fenêtre modale
Une fenêtre monomodale est une fenêtre qui ne peut pas être fermée sans afficher une autre fenêtre. Par défaut, une fenêtre personnalisée dans VBA est monomodale. Vous pouvez définir le type de fenêtre (monomodal ou polymodal) à l’aide du paramètre de style facultatif de la méthode Show.

Show style

Le paramètre style a deux types de valeurs valides: vbModal ou 1 pour une forme monomodale, vbModeless ou 0 pour une forme polymodale.
Par exemple, avec l’instruction suivante, la fenêtre de formulaire est affichée sur la feuille de calcul en mode polymodal et, par conséquent, lorsque la fenêtre est ouverte, l’utilisateur a accès aux cellules de la feuille de calcul.

UserForm1.Show vbModeless

Lorsque la fenêtre est lancée avec l’instruction suivante, elle est en mode monomodal, et par conséquent les cellules de la feuille de calcul sont inaccessibles à l’utilisateur jusqu’à ce qu’il ferme la fenêtre.

UserForm1.Show vbModal

Utiliser plusieurs formulaires personnalisé
Il peut y avoir plusieurs formulaires personnalisés dans un projet. Lors du remplacement d’un formulaire par une autre, il est nécessaire de prendre en compte dans quel mode (monomodal ou polymodal) elle est ouverte. Par exemple, ajoutez deux formulaires UserForm1 et UserForm2 à votre projet. Créez un bouton sur la feuille de calcul. Définissez la valeur de sa propriété Name sur cmdForm1. Lorsque vous appuyez sur ce bouton, la première fenêtre de formulaire s’affiche à l’écran.
Les deux macros suivantes montrent comment les codes pour invoquer le second formulaire lorsque le premier est cliqué doivent différer, selon que le type de fenêtre est monomodal ou polymodal.
En mode monomodal, avant d’afficher le deuxième formulaire, vous devez fermer le premier dans le code. Dans ce cas, un seul formulaire est toujours affiché à l’écran – le premier ou le second. En mode polymodal, il n’est pas nécessaire de fermer le premier formulaire, et après avoir cliqué sur le premier formulaire, les deux formulaires sont affichés à l’écran. Pour que les deux formulaires soient visibles en même temps, le deuxième formulaire est retiré avec un léger décalage par rapport au premier. Mode monomodal : Code du module de feuille de calcul

Private Sub cmdForm1_Click()
    UserForm1.Show vbModal
End Sub

Mode monomodal : Code du module UserForm1

Private Sub UserForm_Click()
Unload UserForm1
    UserForm2.Show
End Sub

Mode polymodal : Code du module de feuille de calcul

Private Sub cmdForm1_Click()
    UserForm1.Show vbModeless
End Sub

Mode polymodal : Code du module UserForm1

Private Sub UserForm_Click()
    UserForm2.StartUpPosition = 0
    UserForm2.Top = UserForm1.Top + 20
    UserForm2.Left = UserForm1.Left + 20
    UserForm2.Show
End Sub
S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x