Les contrôles d'un formulaire
Un bon formulaire guide l'utilisateur : une liste quand les réponses sont connues, une case à cocher pour un oui ou non, des boutons d'option pour un choix unique. Voici chaque contrôle, à quoi il sert et comment le lire en VBA.
Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer01Définition
Un contrôle est un élément interactif placé sur un UserForm. Chaque type a ses propriétés, dont la plus utilisée est Value : ce que l'utilisateur a saisi ou choisi.
02Quel contrôle pour quel besoin ?
| Contrôle | Préfixe | Usage | Propriété clé |
|---|---|---|---|
| Label | lbl | afficher un intitulé ou un message | Caption |
| TextBox | txt | saisie libre : nom, montant, commentaire | Value |
| ComboBox | cbo | liste déroulante, un seul choix | Value, ListIndex |
| ListBox | lst | liste visible, un ou plusieurs choix | Value, Selected |
| CheckBox | chk | oui ou non | Value (True / False) |
| OptionButton | opt | un choix parmi plusieurs | Value (True / False) |
| Frame | fra | regrouper des contrôles | Caption |
| CommandButton | btn | lancer une action | Caption |
03Remplir une liste
Private Sub UserForm_Initialize() ' 1. Élément par élément Me.cboStatut.AddItem "En cours" Me.cboStatut.AddItem "Terminé" ' 2. D'un coup, depuis une plage Me.cboVille.List = Worksheets("Listes").Range("A2:A30").Value ' 3. Liée à une plage (propriété RowSource) Me.lstProduits.RowSource = "Listes!B2:B50" End Sub
Par défaut, une ComboBox accepte aussi un texte tapé au clavier. Pour obliger à choisir dans la liste, réglez sa propriété Style sur fmStyleDropDownList.
04Lire les choix
If Me.chkNewsletter.Value = True Then Cells(ligne, 5).Value = "Oui" End If If Me.optParticulier.Value Then Cells(ligne, 6).Value = "Particulier" ElseIf Me.optProfessionnel.Value Then Cells(ligne, 6).Value = "Professionnel" End If If Me.cboVille.ListIndex = -1 Then MsgBox "Choisissez une ville." ' -1 = rien de sélectionné End If
05Une ListBox à sélection multiple
Réglez la propriété MultiSelect sur fmMultiSelectMulti, puis parcourez la liste avec une boucle For Next en testant Selected.
Dim i As Long, choix As String For i = 0 To Me.lstProduits.ListCount - 1 If Me.lstProduits.Selected(i) Then choix = choix & Me.lstProduits.List(i) & ", " End If Next i
La numérotation d'une liste commence à 0 : le premier élément est List(0).
06Pièges à éviter
Tous les boutons d'option d'un formulaire forment un seul groupe. Pour avoir deux questions séparées, placez chaque groupe dans un Frame, ou donnez-leur une propriété GroupName différente.
RowSource = "A2:A30" lit la feuille active du moment. Indiquez toujours la feuille : "Listes!A2:A30".
En sélection multiple, Value ne renvoie rien d'utile : il faut parcourir les éléments et tester Selected(i).
07Questions fréquentes
Quels contrôles utiliser dans un UserForm VBA ?
Un contrôle est un élément interactif placé sur un UserForm. Chaque type a ses propriétés, dont la plus utilisée est Value : ce que l'utilisateur a saisi ou choisi.
Quel est le piège le plus fréquent avec les contrôles d'un formulaire ?
Des OptionButton qui ne s'excluent pas. Tous les boutons d'option d'un formulaire forment un seul groupe. Pour avoir deux questions séparées, placez chaque groupe dans un Frame, ou donnez-leur une propriété GroupName différente.
La fiche « Les contrôles d'un formulaire » 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