TOP

VBA-Leçon 12.1. Formulaires utilisateur (UserForm)

Un objet UserForm est une fenêtre ou une boîte de dialogue qui fait partie de l'interface utilisateur d'une application.

UserForm vous permet de créer des fenêtres ou des boîtes de dialogue dans votre projet. Sur le formulaire, vous dessinez et voyez les contrôles.

Les formulaires utilisateur ont des propriétés qui définissent leur apparence, telles que la position, la taille, la couleur et certains aspects de leur comportement.

Lors de l'élaboration du formulaire :

  • Chaque fenêtre de formulaire comporte des boutons Réduire, Développer et Fermer.
  • Vous pouvez afficher la grille de forme et dimensionner les lignes de la grille dans l'onglet Général de la boîte de dialogue Options.
  • Utilisez les boutons de la barre d'outils pour dessiner des contrôles sur le formulaire. Sous l’onglet Général de la boîte de dialogue Options, vous pouvez personnaliser les contrôles pour les aligner sur la grille du formulaire.

  • Créer un formulaire (UserForm)

    Pour ajouter UserForm, nous devons faire la même chose lorsque nous ajoutons un nouveau module :

    Après cela, le formulaire (UserForm) et la barre d'outils (Toolbox) apparaîtront :

    Si vous ne voyez pas la fenêtre Propriétés (Properties), assurez-vous qu'elle est affichée puis commencez par modifier le nom UserForm (afin que vous puissiez le retrouver facilement plus tard) :

    Un formulaire (UserForm) possède ses propres événements, tout comme un classeur ou une feuille. Pour ajouter un événement, double-cliquez sur UserForm.

    Créons maintenant deux événements pour voir comment cela fonctionne. Le premier événement définira la taille initiale de UserForm et le second augmentera sa taille de 50 px lorsque l'utilisateur clique.

    L'événement UserForm_Initialize se déclenchera au démarrage de UserForm :

    Private Sub UserForm_Initialize()
        my_userform.Height = 100
        my_userform.Width  = 100
    End Sub
    

    Pour simplifier le code, nous pouvons utiliser Me à la place du nom UserForm (car ce code se trouve dans le UserForm avec lequel nous travaillons) :

    Private Sub UserForm_Initialize()
        Me.Height = 100
        Me.Width  = 100
    End Sub
    

    Le deuxième événement se produira lorsque l'utilisateur cliquera sur UserForm :

    Private Sub UserForm_Initialize()
        Me.Height = 100
        Me.Width  = 100
    End Sub
    
    Private Sub UserForm_Click()
        Me.Height = Me.Height + 50
        Me.Width  = Me.Width + 50
    End Sub
    

    Formulaire de lancement (UserForm)

    Pour exécuter UserForm dans une procédure, utilisez Show :

    Sub show_userform()
         my_userform.Show
    End Sub