Aller au contenu principal
Mis à jour le

C'est quoi un formulaire utilisateur (UserForm) dans Excel ?

Un formulaire utilisateur, appelé UserForm en VBA, est une fenêtre de saisie personnalisée qu'on dessine soi-même dans l'éditeur de macros. On y dispose les contrôles de son choix, zones de texte, listes déroulantes, cases à cocher et boutons. C'est ensuite du code VBA qui l'affiche et qui range la saisie dans les cellules.

À quoi sert un formulaire utilisateur (UserForm) dans Excel

Un formulaire utilisateur te sert à faire saisir des données par une fenêtre guidée plutôt que directement dans les cellules. Tes collègues remplissent des champs étiquetés, choisissent dans des listes et cliquent sur un bouton, sans jamais toucher à la grille ni aux formules qui tournent derrière.

Tu y viens dès que la saisie en direct devient trop risquée, quand une colonne décalée ou une formule écrasée coûte cher. Le formulaire rend le plus grand service sur les saisies répétitives, l'enregistrement d'un client, d'une commande ou d'un pointage d'heures, parce qu'il vérifie chaque valeur avant de l'écrire au bon endroit.

Éditeur VBA affichant un formulaire utilisateur en mode création avec des champs de saisie pour une note de frais et la boîte à outils.
Le formulaire utilisateur se dessine dans l'éditeur VBA, avec ses champs date, type de dépense et montant pour la saisie des notes de frais.
Le conseil du pro
Le vrai intérêt d'un formulaire, c'est de contrôler la saisie avant de l'écrire. Dans le code de ton bouton d'enregistrement, vérifie que les champs obligatoires sont remplis et bloque l'écriture par un message clair si l'un manque.

Comment créer un formulaire utilisateur (UserForm) dans Excel

Un formulaire utilisateur se construit dans l'éditeur VBA, en glissant des contrôles sur une fenêtre vierge. Tu ajoutes ensuite le code qui traite la saisie et l'écrit dans tes cellules.

  1. 1
    Appuie sur Alt+F11 pour ouvrir l'éditeur Visual Basic.
  2. 2
    Déroule le menu Insertion, puis clique sur UserForm : une fenêtre vierge et sa boîte à outils apparaissent.
    Menu Insertion de l'éditeur Visual Basic, avec l'entrée UserForm au-dessus de Module
    UserForm arrive juste avant Module dans le menu. C'est un objet distinct du module de code, avec sa propre surface de dessin et sa boîte à outils.
  3. 3
    Fais glisser les contrôles voulus depuis la boîte à outils, une zone de texte, une liste déroulante ou un bouton, et pose-les sur le formulaire.
  4. 4
    Double-clique sur ton bouton d'enregistrement pour ouvrir sa fenêtre de code, puis écris le VBA qui range la saisie dans les cellules.
  5. 5
    Affiche le formulaire en exécutant l'instruction MonFormulaire.Show dans une macro.
L'astuce en plus
Le remplissage des listes à l'ouverturePour qu'une liste déroulante affiche ses choix dès l'ouverture du formulaire, remplis-la dans l'événement UserForm_Initialize. Ce code tourne une seule fois, juste avant l'affichage, et garde la liste calée sur tes données sources.

Comment afficher un formulaire utilisateur sans ouvrir l'éditeur VBA

Une fois le formulaire dessiné, personne ne l'ouvrira en tapant Alt+F11 puis en lançant une macro à la main. Pose plutôt un bouton sur la feuille, depuis l'onglet Développeur, et affecte-lui une macro d'une seule ligne, UserForm1.Show. Ton collègue clique sur ce bouton, le formulaire apparaît, et il n'ouvre jamais l'éditeur VBA.

Par défaut, ce formulaire s'ouvre en mode modal, ce qui fige la feuille tant qu'il reste à l'écran. C'est le bon réglage pour une saisie qu'on veut terminer avant de reprendre le travail. Si tu préfères garder la feuille cliquable pendant qu'il flotte, pour un formulaire de recherche par exemple, affiche-le avec l'option vbModeless.

Quelle différence entre un UserForm et le formulaire de saisie d'Excel

Le formulaire de saisie et le formulaire utilisateur ne se construisent pas du tout de la même façon, et c'est là qu'ils se séparent. Le formulaire de saisie est un formulaire tout prêt qu'Excel génère seul à partir des en-têtes de ton tableau, une zone de texte par colonne, sans une ligne de code. Son revers, c'est qu'il ne se personnalise pas, ni menu déroulant, ni case à cocher, ni bouton sur mesure.

Le formulaire utilisateur prend le problème par l'autre bout. C'est toi qui le dessines dans l'éditeur VBA, champ par champ, avec les listes et les boutons que tu veux, puis toi encore qui écris le code rangeant la saisie dans la feuille. Tu obtiens l'interface exacte que tu visais, au prix d'un vrai travail de mise en place.

La règle tient en une ligne. Le formulaire de saisie sert à saisir vite dans un tableau existant, un formulaire utilisateur dès que la présentation et la validation pèsent plus que le temps de le construire.

Le savais-tu ?
Contrairement aux contrôles ActiveX, un formulaire utilisateur fonctionne aussi dans Excel pour Mac, où VBA est pris en charge depuis 2011. Quelques réglages fins de contrôles peuvent y manquer, mais le formulaire s'ouvre et se remplit comme sous Windows.

Questions fréquentes
sur le formulaire utilisateur

Les contrôles de formulaire se posent directement sur la feuille et renvoient une valeur dans une cellule liée, ils conviennent à des interactions simples. Un UserForm est une fenêtre à part entière, avec plusieurs champs regroupés et une vraie logique de validation avant enregistrement. Utilise un UserForm quand tu veux un écran de saisie guidé et complet plutôt qu'un ou deux boutons isolés.

Pour aller plus loin

Tout ce dont tu as besoin pour passer de la définition à l’usage se trouve ici.

Besoin d’aide sur Excel ?

Rejoins le Dojo pour poser tes questions, obtenir de l’aide sur tes fichiers Excel et participer chaque mois à un cours collectif en direct.

Gratuit · Sans carte bancaire