Excel Mania

Excel userform : créer des formulaires personnalisés avec VBA

Excel userform : créer des formulaires personnalisés avec VBA

Excel userform : créer des formulaires personnalisés avec VBA

Vous avez déjà rempli un formulaire Excel bricolé avec des cellules colorées, trois menus déroulants et une colonne “merci de ne rien casser” ? On a tous connu ça. Quand un fichier commence à servir de mini-application, les feuilles de calcul ne suffisent plus toujours. C’est précisément là que l’Excel UserForm entre en scène.

Avec VBA, il est possible de créer des formulaires personnalisés, plus clairs pour l’utilisateur, plus propres pour vos données, et beaucoup plus agréables à utiliser qu’une simple feuille de saisie. Bonne nouvelle : il n’est pas nécessaire d’être un sorcier du code pour obtenir un résultat utile. Avec quelques bases solides, vous pouvez déjà construire des interfaces très convaincantes.

Pourquoi utiliser un UserForm dans Excel ?

Un UserForm est une fenêtre personnalisée que vous créez dans l’éditeur VBA. Elle permet de saisir, afficher ou modifier des informations sans passer directement par les cellules de la feuille.

En pratique, cela sert à :

  • collecter des données de manière plus intuitive ;
  • limiter les erreurs de saisie grâce à des contrôles adaptés ;
  • masquer la complexité d’un classeur aux utilisateurs ;
  • créer une expérience plus professionnelle ;
  • centraliser des actions répétitives dans une seule interface.
  • Imaginez un fichier de gestion de commandes. Plutôt que de demander à l’utilisateur d’aller remplir cinq cellules dans trois onglets différents, vous lui proposez un formulaire avec des champs clairs : nom, produit, quantité, date, bouton “Valider”. Résultat : moins de frictions, moins d’erreurs, et un classeur plus simple à maintenir.

    Le UserForm n’est pas réservé aux gros projets. Même pour un petit outil interne, il peut transformer un fichier “juste pratique” en fichier réellement agréable à utiliser.

    Créer son premier UserForm dans VBA

    Avant de coder, il faut ouvrir l’éditeur VBA. Dans Excel, utilisez le raccourci Alt + F11. Ensuite, insérez un nouveau formulaire via le menu Insertion > UserForm.

    Une fenêtre vierge apparaît. C’est votre base de travail. Vous pouvez ensuite ajouter des contrôles depuis la boîte à outils : zones de texte, boutons, listes, cases à cocher, etc.

    Voici les contrôles les plus utiles pour débuter :

  • Label : pour afficher un texte explicatif ;
  • TextBox : pour saisir du texte ou des nombres ;
  • ComboBox : pour choisir une valeur dans une liste déroulante ;
  • ListBox : pour afficher plusieurs éléments sélectionnables ;
  • CheckBox : pour une option oui/non ;
  • CommandButton : pour lancer une action, comme enregistrer ou fermer.
  • Petit conseil de Nathan : pensez votre formulaire comme une mini-page web. L’objectif n’est pas de mettre tous les contrôles possibles, mais seulement ceux qui aident vraiment l’utilisateur à avancer sans hésiter.

    Structurer un formulaire simple et efficace

    Un bon UserForm n’est pas seulement fonctionnel. Il doit être lisible. C’est souvent là que les projets gagnent ou perdent en qualité. Si l’utilisateur doit deviner quoi remplir, le formulaire a déjà perdu un point.

    Pour construire une interface claire, gardez ces principes en tête :

  • regroupez les champs par logique ;
  • utilisez des libellés précis ;
  • évitez les formulaires trop longs sur une seule colonne ;
  • privilégiez des noms de contrôles explicites ;
  • préparez des boutons d’action évidents, comme “Enregistrer” ou “Annuler”.
  • Par exemple, pour un formulaire de saisie client, vous pouvez organiser les informations en trois zones : identité, contact, et notes. Ce découpage rend l’ensemble plus fluide, même si le formulaire contient beaucoup de données.

    Astuce utile : dans les propriétés du formulaire, vous pouvez modifier le titre affiché en haut de la fenêtre, la taille, la couleur de fond, ou encore l’icône. Ce sont de petits détails, mais ils donnent rapidement une impression plus sérieuse au fichier.

    Ajouter des champs et des boutons

    Prenons un exemple concret avec un formulaire de saisie simple : nom, prénom, service et validation. Vous pouvez placer deux zones de texte, une liste déroulante et un bouton pour envoyer les données vers une feuille Excel.

    Sur le plan visuel, essayez de garder un enchaînement logique :

  • un label à gauche ou au-dessus ;
  • le champ juste à côté ou en dessous ;
  • un bouton d’action bien visible en bas du formulaire.
  • Les noms des contrôles comptent énormément en VBA. Au lieu de laisser des noms génériques comme TextBox1 ou CommandButton2, donnez des noms clairs : txtNom, txtPrenom, cboService, btnValider. Vous vous remerciez toujours plus tard, au moment de relire le code. Votre futur vous mérite ce cadeau.

    Voici un exemple de logique simple : l’utilisateur remplit les champs, clique sur “Valider”, et les données sont ajoutées dans la première ligne vide d’une feuille appelée “Clients”.

    Le code peut ressembler à ceci :

    Private Sub btnValider_Click()
      Dim ws As Worksheet
      Dim ligne As Long

      Set ws = ThisWorkbook.Worksheets("Clients")
      ligne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1

      ws.Cells(ligne, 1).Value = txtNom.Value
      ws.Cells(ligne, 2).Value = txtPrenom.Value
      ws.Cells(ligne, 3).Value = cboService.Value

      MsgBox "Données enregistrées avec succès.", vbInformation

      txtNom.Value = ""
      txtPrenom.Value = ""
      cboService.Value = ""
    End Sub

    Ce code est volontairement simple, mais il montre la logique de base : récupérer les valeurs du formulaire, les envoyer dans la feuille, puis réinitialiser les champs.

    Remplir automatiquement une ComboBox

    Une ComboBox est parfaite quand vous voulez éviter les fautes de frappe et les valeurs incohérentes. Au lieu de laisser l’utilisateur taper “Marketing”, “market”, “MKT” ou “marqueting” selon l’humeur du jour, vous lui proposez une liste propre.

    Pour ajouter des éléments à l’ouverture du formulaire, utilisez l’événement UserForm_Initialize :

    Private Sub UserForm_Initialize()
      With cboService
        .AddItem "Commercial"
        .AddItem "Marketing"
        .AddItem "Support"
        .AddItem "RH"
      End With
    End Sub

    Cette approche fonctionne bien pour une liste courte. Si la liste dépend d’une feuille Excel, vous pouvez aussi la charger dynamiquement depuis une plage de cellules. C’est pratique quand les valeurs changent régulièrement.

    Exemple utile : vous disposez d’une feuille “Paramètres” avec une liste de services en colonne A. Le formulaire peut lire cette plage et remplir la ComboBox automatiquement. Résultat : vous évitez de modifier le code à chaque évolution de la liste.

    Contrôler la saisie avant enregistrement

    Un formulaire sans validation, c’est un peu comme une porte sans serrure : tout le monde passe, y compris les erreurs. Et Excel adore conserver les erreurs pour l’éternité, alors autant être prudent.

    Vous pouvez vérifier que les champs obligatoires sont remplis avant de valider :

    Private Sub btnValider_Click()
      If txtNom.Value = "" Then
        MsgBox "Veuillez saisir un nom.", vbExclamation
        txtNom.SetFocus
        Exit Sub
      End If

      If cboService.Value = "" Then
        MsgBox "Veuillez choisir un service.", vbExclamation
        cboService.SetFocus
        Exit Sub
      End If

      ' Suite de l'enregistrement
    End Sub

    Vous pouvez aller plus loin et vérifier les formats de données. Par exemple, si un champ doit contenir un nombre, utilisez une validation avec IsNumeric. Si une date est attendue, contrôlez la valeur avant de l’écrire dans la feuille.

    Quelques contrôles utiles à intégrer :

  • vérification des champs obligatoires ;
  • contrôle des nombres saisis ;
  • validation d’une date ;
  • limitation des doublons ;
  • messages d’erreur clairs et directs.
  • Améliorer l’expérience utilisateur avec quelques bonnes pratiques

    Le vrai bon formulaire n’est pas seulement beau, il est confortable. L’utilisateur doit comprendre tout de suite quoi faire. Si vous devez lui expliquer le fonctionnement pendant cinq minutes, c’est souvent le signe que le formulaire mérite une petite refonte.

    Voici quelques bonnes pratiques simples à appliquer :

  • prévoyez une taille de police lisible ;
  • alignez proprement les champs ;
  • utilisez des couleurs sobres ;
  • limitez le nombre de boutons au strict nécessaire ;
  • ajoutez un bouton “Fermer” ou “Annuler” ;
  • évitez de laisser l’utilisateur face à un formulaire trop dense.
  • Vous pouvez aussi personnaliser le comportement des champs. Par exemple, déplacer automatiquement le curseur vers le champ suivant après validation, ou empêcher la saisie de caractères non autorisés. Ce sont de petits raffinements qui changent nettement l’usage au quotidien.

    Autre point souvent négligé : le positionnement du formulaire à l’ouverture. Un UserForm centré à l’écran donne une impression plus propre. Ce détail ne révolutionnera pas votre vie, mais il rend le tout plus professionnel.

    Afficher le formulaire depuis une macro

    Créer un UserForm, c’est bien. Le lancer facilement, c’est mieux. Pour l’afficher, il suffit d’appeler la méthode Show depuis une macro :

    Sub OuvrirFormulaire()
      UserForm1.Show
    End Sub

    Vous pouvez ensuite associer cette macro à un bouton dans la feuille, à une forme, ou même à un raccourci clavier. Ainsi, l’utilisateur n’a pas besoin de naviguer dans l’éditeur VBA. Un clic, et le formulaire apparaît.

    Dans un cadre professionnel, cette simplicité est précieuse. Moins l’utilisateur a d’actions à faire pour accéder à l’outil, plus le classeur est utilisé correctement. Et moins il y a de détours, moins il y a d’erreurs. Excel aime la clarté, l’utilisateur aussi.

    Aller plus loin avec des UserForms plus avancés

    Une fois les bases maîtrisées, vous pouvez enrichir vos formulaires avec des fonctionnalités plus poussées. C’est souvent là qu’un classeur passe du stade de “tableur sympa” à celui de véritable outil métier.

    Quelques idées pour aller plus loin :

  • afficher, modifier et supprimer des enregistrements existants ;
  • charger une liste d’éléments dans une ListBox ;
  • créer des formulaires de recherche ;
  • ajouter des boutons pour naviguer entre plusieurs écrans ;
  • utiliser plusieurs UserForms dans un même projet ;
  • piloter le formulaire selon les droits de l’utilisateur.
  • Vous pouvez aussi utiliser les événements des contrôles, par exemple pour exécuter une action dès qu’un champ change, ou pour pré-remplir certains champs à partir d’une sélection. Avec un peu d’expérience, vous obtenez une interface très fluide, presque proche d’une petite application Windows.

    Un cas fréquent consiste à utiliser un UserForm pour modifier une ligne existante dans une table. L’utilisateur sélectionne un enregistrement, le formulaire s’ouvre avec les données déjà chargées, puis il enregistre les modifications. C’est très utile pour éviter les ressaisies inutiles.

    Ce qu’il faut retenir pour bien démarrer

    Les UserForms VBA sont une excellente solution pour rendre Excel plus ergonomique. Ils permettent de créer des interfaces personnalisées, de sécuriser les saisies, et de fluidifier le travail des utilisateurs. Si vous cherchez à faire un pas au-delà de la simple feuille de calcul, c’est clairement une compétence à développer.

    Le plus important est de commencer simple : un formulaire, quelques champs, un bouton de validation, une feuille de destination. Ensuite, vous pourrez enrichir progressivement l’ensemble avec des listes dynamiques, des contrôles de saisie et des affichages plus soignés.

    En bref, un bon UserForm ne doit pas impressionner par sa complexité. Il doit surtout rendre la vie plus facile. Et dans Excel, c’est déjà une petite victoire bien agréable.

    Quitter la version mobile