Créer un premier UserForm
Un formulaire de saisie, c'est la meilleure façon d'éviter les erreurs dans un tableau partagé : l'utilisateur remplit des champs propres, la macro contrôle et range tout au bon endroit. Voici comment construire le premier, de bout en bout.
Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer01Définition
Un UserForm est une fenêtre personnalisée que vous dessinez dans l'éditeur VBA : zones de texte, listes, cases à cocher et boutons, reliés à du code.
02Créer le formulaire
- Ouvrez l'éditeur avec
Alt + F11, puis Insertion > UserForm. - La Boîte à outils s'affiche. Si ce n'est pas le cas : Affichage > Boîte à outils.
- Dessinez vos contrôles : un intitulé (Label) et une zone de texte (TextBox) pour le nom, une liste déroulante (ComboBox) pour la ville, deux boutons (CommandButton).
- Dans la fenêtre Propriétés (
F4), renommez chaque élément : propriété Name pour le code, propriété Caption pour le texte affiché.
txtNom, cboVille, btnValider, btnAnnuler : le préfixe indique le type de contrôle, et le code devient lisible sans retourner voir le formulaire.
| Contrôle | Name | Caption |
|---|---|---|
| UserForm | frmClient | Nouveau client |
| TextBox | txtNom | (aucune) |
| ComboBox | cboVille | (aucune) |
| CommandButton | btnValider | Valider |
| CommandButton | btnAnnuler | Annuler |
03Ouvrir le formulaire
Le formulaire s'affiche avec la méthode Show, depuis une macro classique. Reliez cette macro à un bouton dans la feuille (Développeur > Insérer > Bouton).
Sub OuvrirFormulaire() frmClient.Show End Sub
04Préparer le formulaire à l'ouverture
Double-cliquez sur le fond du formulaire pour ouvrir son code, puis choisissez l'événement Initialize : il s'exécute juste avant l'affichage.
Private Sub UserForm_Initialize() With Me.cboVille .AddItem "Lille" .AddItem "Lens" .AddItem "Arras" .AddItem "Valenciennes" End With End Sub
Me désigne le formulaire lui-même.
05Le bouton Valider
Double-cliquez sur le bouton Valider dans le formulaire : l'éditeur crée la procédure de son événement Click.
Private Sub btnValider_Click() Dim ligne As Long ' 1. Contrôler la saisie If Trim(Me.txtNom.Value) = "" Then MsgBox "Le nom est obligatoire.", vbExclamation Me.txtNom.SetFocus Exit Sub End If ' 2. Écrire dans la première ligne libre With Worksheets("Clients") ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Cells(ligne, 1).Value = Trim(Me.txtNom.Value) .Cells(ligne, 2).Value = Me.cboVille.Value .Cells(ligne, 3).Value = Date End With ' 3. Fermer le formulaire Unload Me End Sub Private Sub btnAnnuler_Click() Unload Me End Sub
06Pièges à éviter
Unload Me ferme le formulaire et efface ses valeurs. Me.Hide le cache seulement : à la prochaine ouverture, les anciennes saisies sont encore là.
Le code des boutons se trouve dans le module du formulaire (double-clic sur le contrôle), pas dans un module standard. La macro qui fait frmClient.Show, elle, va dans un module standard.
Si vous renommez CommandButton1 en btnValider après avoir écrit son code, la procédure CommandButton1_Click ne sera plus jamais appelée. Renommez d'abord, codez ensuite.
Une TextBox renvoie toujours du texte. Pour un montant ou une quantité, vérifiez avec IsNumeric puis convertissez avec CDbl ou CLng avant d'écrire dans la feuille.
07Questions fréquentes
Qu'est-ce qu'un UserForm en VBA ?
Un UserForm est une fenêtre personnalisée que vous dessinez dans l'éditeur VBA : zones de texte, listes, cases à cocher et boutons, reliés à du code.
Quel est le piège le plus fréquent avec les UserForms ?
Unload ou Hide. Unload Me ferme le formulaire et efface ses valeurs. Me.Hide le cache seulement : à la prochaine ouverture, les anciennes saisies sont encore là.
La fiche « Créer un premier UserForm » est-elle gratuite ?
Oui. La fiche est en accès libre et gratuit, sans inscription : vous pouvez la lire en ligne et télécharger sa version PDF. Elle fait partie du cours VBA gratuit de mesetudesdecas.fr, qui compte 21 fiches.
Passez de la fiche à la mise en situation
Les études de cas mesetudesdecas.fr placent vos apprenants face à un vrai besoin d'entreprise. L'étude de cas XL-05 fait automatiser un devis commercial de bout en bout, macros comprises, avec énoncé, corrigé et pas-à-pas du formateur.
Découvrir l'étude de cas XL-05Toutes les fiches du cours VBA gratuit
Voir aussi le cours gratuit sur les formules Excel
Fiche V1.2 | Dernière mise à jour : 29/10/2026 | Clément Delobel, formateur Excel et VBA