Accueil/Cours gratuits/Bibliothèque VBA/Formulaires/Créer un premier UserForm
Cours VBA gratuit | Formulaires

Créer un premier UserForm

Gratuit, sans inscription Niveau 3 / 3 | Avancé Lecture 10 min V1.2 | 29/10/2026

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 à imprimer

01Définition

En une phrase

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

  1. Ouvrez l'éditeur avec Alt + F11, puis Insertion > UserForm.
  2. La Boîte à outils s'affiche. Si ce n'est pas le cas : Affichage > Boîte à outils.
  3. 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).
  4. 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é.
💡 AstuceNommer avec un préfixe

txtNom, cboVille, btnValider, btnAnnuler : le préfixe indique le type de contrôle, et le code devient lisible sans retourner voir le formulaire.

ContrôleNameCaption
UserFormfrmClientNouveau client
TextBoxtxtNom(aucune)
ComboBoxcboVille(aucune)
CommandButtonbtnValiderValider
CommandButtonbtnAnnulerAnnuler

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).

Dans un module standard
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.

Remplir la liste des villes
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.

Contrôler, écrire, fermer
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

⚠️ PiègeUnload 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à.

⚠️ PiègeLe code au mauvais endroit

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.

⚠️ PiègeRenommer après avoir codé

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.

⚠️ PiègeTout est du texte

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.

Pour les formateurs

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-05
Voir aussi

Toutes 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