
Les UsferForms sont des boîtes de dialogue personnalisables que vous pouvez créer en utilisant VBA dans Excel. Ils permettent de créer une interface utilisateur personnalisée rapidement et facilement. Ces interfaces permettent de collecter des données utilisateurs pour réaliser une grande variété de tâches et ce de manière conviviale. Vous pourrez alors automatiser la saisie de données pour une remplir une base de données jusqu’à générer des rapports entiers.
Dans cet article, je vais vous montrer comment créer un UserForm en VBA. Tout d’abord nous verrons de quoi se compose un UserForm et quelques exemples d’applications. Dans un second temps, vous verrez toutes les étapes nécessaire pour créer un UserForm à partir de rien, sans connaissance préalable en VBA.
Présentation d’un UserForm
Comme décrit précédemment, un UserForm est une boîte de dialogue personnalisable. Elle permet de faire l’interface entre l’utilisateur et le programme. Le UserForm se compose de boutons, de zone de saisie de texte, de case à cocher, des listes déroulantes, etc … Un UserForm peut même avoir plusieurs onglets dans lesquels vous pouvez mettre différentes images pour les différencier.
En fonction des actions de l’utilisateur, vous pourrez alors définir comment doit réagir l’interface. En effet, pour un clic sur un bouton, vous pourrez alors faire tout ce que vous voudrez automatiquement. Par exemple, vous pouvez récupérer la saisie de l’utilisateur pour l’enregistrer quelque part.
Activer les outils de développement
Maintenant que nous avons vu ce qu’est un UserForm et à quoi cela peut servir, nous allons voir comment le créer. La première étape consiste à activer les outils de développement dans Excel si cela n’a pas déjà été fait. Pour se faire, vous devez cliquer sur le bouton « Fichier » dans le ruban supérieur puis sélectionnez « Options ». Dans la boîte de dialogue « Options Excel », sélectionnez « Personnalisez le ruban » dans le volet de gauche. Il faut alors cocher la case « Développeur » dans la liste de droite et valider en cliquant sur OK. Vous verrez alors une nouvelle section dans le ruban nommée « Développeur ».

Comment créer un UserForm en VBA ?
Une fois que vous avez débloqué le mode « Développeur », vous pourrez alors vous rendre dans ce nouvel onglet (Point 1 sur l’image suivante). Tout à gauche, vous avez le bouton « Visual Basic » qui ouvrira l’environnement de développement (Point 2). Vous également le raccourci « Alt + F11 » qui vous permettra d’aller plus vite.
Une fois l’environnement de développement ouvert, faites un clic droit dans la zone blanche (Point 3) et cliquer sur Insertion puis Userform.

Félicitions !!! Vous avez créé votre premier UserForm. Vous devriez obtenir quelque chose qui ressemble à l’image suivante. La zone grise avec des points est l’interface dans laquelle vous allez pouvoir insérer des outils. Vous pouvez ajuster sa taille en cliquant sur les petits carrés blanc puis en tirant dessus. La boîte à outils vous donne accès à toutes les entités que vous pouvez mettre dans un UserForm.

Boîtes à outils d’un UserForm

Voici la liste des outils disponibles pour la création d’un UserForm. Les listes suivantes les présentent dans l’ordre d’apparition :
Si vous sélectionnez cette case, vous pourrez sélectionner les différentes entités du UserForm.
Intitulé : c’est une zone de texte figée donnant de l’information dans votre interface utilisateur. Elle ne pourra pas être modifiée par l’utilisateur.
Zone de texte : c’est une zone de saisie de texte, l’utilisateur pourra rentrer des données.
Zone de liste modifiable : c’est une liste déroulante imposant les choix à l’utilisateur mais il pourra également rentrer manuellement une valeur.
Zone de liste : c’est une liste déroulante que l’utilisateur ne pourra pas modifier. Il devra choisir les options prédéfinies.
Case à cocher : L’utilisateur aura la possibilité de cocher cette case. Vous pourrez ensuite récupérer le statut de cette case dans votre programme pour réaliser ou non certaines actions. L’objet renvoie la valeur « Vrai » ou « Faux ». Vrai si la case est cochée, Faux dans le cas contraire.
Bouton d’option : A la différence de la case à cocher, un seul bouton d’option pourra être actif à la fois. L’utilisateur devra donc choisir une seule option parmi celles proposées.
Bouton bascule : bouton qui peut être activé ou non.
Cette option permet d’identifier des zones et de créer des regroupements graphiques.
Bouton de commande : quand l’utilisateur appuiera sur ce bouton, il déclenchera l’action associée au bouton
Contrôle onglets : Permet de gérer la même interface mais de deux manière différentes suivant l’onglet actif.
Multipages : Permet de définir deux pages avec des données différentes
Barre de défilement : cet outil permet d’accéder aux éléments d’une liste ou de modifier une valeur d’un champ lié à cette de défilement
Toupie : permet de faire ce que fait la barre de défilement sans le curseur ni la barre. En cliquant d’un côté ou de l’autre, vous bouclerez sur les éléments d’une liste définie.
Image : permet d’insérer une image dans votre UserForm, un logo par exemple.
RefEdit : permet d’aller chercher une plage de cellule dans la feuille Excel
Les propriétés principales d’un UserForm
Si les propriétés ne sont pas affichées, vous pouvez utiliser le raccourci F4 pour les faire apparaître.
Un UserForm possède beaucoup de propriétés, ça ne sera pas utile de toutes les parcourir. Je vais vous présenter les plus principales et les plus utiles :

- (Name) : c’est le nom de la variable. C’est ce nom là que vous utilisez dans votre code pour appeler les différents attributs de votre UserForm
- BorderStyle : permet de rajouter un encart noir autour. Le style peut être modifié.
- Caption : C’est le nom qui sera affiché dans la barre supérieure lorsque votre programme fera apparaître le UserForm
- Height : vous pouvez spécifier la hauteur manuellement
- Width : Idem pour la largeur
- Picture : permet de définir une image de fond
Ecrire une saisie dans une cellule Excel
Nous allons voir maintenant un cas simple pour créer un UserForm où l’utilisateur rentre du texte et la valeur rentrée est recopiée dans une cellule. Dans notre Userform, nous allons créer une zone de texte non modifiable (Intitulé), une zone de saisie de texte (Zone de texte) et un bouton.

Dans ce UserForm, nous avons changé son nom avec la valeur « UserForm_de_saisie ». On retrouve la valeur dans l’arborescence à gauche. Ensuite, nous avons changé la valeur de la propriété « Caption ». La valeur s’affiche dans la barre d’entête de l’interface.
Ensuite, nous voulons que lorsque l’utilisateur appuie sur le bouton OK, la valeur saisie se mette dans la cellule « B2 ». En faisant un double-clic sur le bouton, VBA va créer automatiquement un bloc de procédure dans lequel vous pourrez mettre les actions à réaliser. Vous pouvez aussi accéder au code d’un UserForm en faisant un clic droit sur le UserForm et cliquez sur « Code ».

Ensuite, voici le code à associer au clic sur le bouton :
Private Sub ok_Click()
ActiveWorkbook.Worksheets(1).Range("B2") = TextBox1.Value
UserForm1.Hide
End Sub
VBQuand l’utilisateur cliquera sur le bouton, automatiquement la valeur saisie dans la zone de texte sera copiée dans la cellule « B2 ». Ensuite, le UserForm est caché afin qu’il ne reste pas visible.
Dans votre feuille Excel, vous pourrez alors créer un bouton pour afficher le UserForm. Voici le code de la macro qui sera à associer au bouton. Pour associer une macro à un bouton, j’en parle dans cet article.
Sub test()
UserForm_de_saisie.Show
End Sub
VBConclusion
Les UserForms sont des outils puissants qui permettent aux utilisateurs de saisir et de manipuler des données dans des applications Excel. Bien que leur création peut paraître compliquée au début, vous avez maintenant un guide pour vous aider. Avec un peu de pratique, vous le ferez naturellement !
De plus, le petit exemple vous montre une des possibilités mais n’oubliez pas que vous pouvez interagir avec Excel et faire tout ce que vous faites actuellement de façon manuelle mais en automatique ! En développant vos compétences en VBA vous pourrez créer des applications Excel plus avancées ! N’hésitez pas à vous lancer et expérimenter avec les UserForms et VBA !
Merci de m’avoir lu, n’hésitez pas à laisser un commentaire,
A bientôt,
Benjamin