Dans Excel, proposer plusieurs choix à l’utilisateur permet de rendre un tableau plus clair, plus rapide à remplir et beaucoup plus fiable. Au lieu de laisser chacun saisir librement « En cours », « en cours », « Encours » ou une variante encore plus créative, vous pouvez afficher une liste de valeurs prédéfinies.

Cette technique est particulièrement utile pour les formulaires, les suivis de projets, les tableaux de bord, les fichiers de gestion commerciale ou les feuilles de planning. Excel propose plusieurs méthodes pour créer ces choix multiples : la liste déroulante classique, les cases à cocher, les boutons d’option et, pour les utilisateurs qui veulent aller plus loin, une liste permettant de sélectionner plusieurs valeurs dans une seule cellule grâce à VBA.

Créer une liste déroulante avec la validation des données

La méthode la plus simple consiste à utiliser la fonctionnalité Validation des données. Elle permet de limiter les valeurs saisies dans une cellule à une liste précise.

Imaginons un tableau de suivi des tâches avec une colonne « Statut ». Vous souhaitez autoriser uniquement les choix suivants :

  • À faire
  • En cours
  • Terminé
  • Bloqué

Commencez par saisir ces valeurs dans une zone dédiée de votre feuille, par exemple en H2:H5. Il est préférable de placer cette liste dans une feuille nommée « Paramètres » afin de garder votre tableau principal propre.

Sélectionnez ensuite la cellule, ou la plage de cellules, dans laquelle la liste doit apparaître. Dans le ruban Excel, ouvrez l’onglet Données, puis cliquez sur Validation des données.

Dans la fenêtre qui s’affiche :

  • Ouvrez la liste « Autoriser » ;
  • Sélectionnez « Liste » ;
  • Dans le champ « Source », indiquez la plage contenant vos choix, par exemple =Paramètres!$H$2:$H$5 ;
  • Vérifiez que l’option « Liste déroulante dans la cellule » est cochée ;
  • Cliquez sur « OK ».

Une petite flèche apparaît alors dans la cellule. Un clic suffit pour afficher les choix disponibles. La saisie devient plus rapide et, surtout, les données restent homogènes.

Créer une liste directement dans la validation

Pour une liste courte et rarement modifiée, vous pouvez saisir les valeurs directement dans le champ « Source » de la validation des données.

Par exemple :

À faire;En cours;Terminé;Bloqué

Selon les paramètres régionaux de votre version d’Excel, le séparateur peut être une virgule ou un point-virgule. En français, le point-virgule est généralement utilisé.

Cette méthode est pratique pour trois ou quatre valeurs simples. En revanche, dès que la liste s’allonge ou qu’elle doit évoluer, mieux vaut utiliser une plage de cellules. Modifier une liste dans une feuille est beaucoup plus confortable que de retourner dans la fenêtre de validation pour éditer une longue chaîne de texte.

Utiliser un tableau Excel pour une liste évolutive

Une liste déroulante basée sur une plage classique peut devenir limitée si vous ajoutez régulièrement de nouvelles valeurs. Pour éviter de modifier manuellement la source de la validation, transformez votre liste en tableau Excel.

Sélectionnez vos valeurs, puis utilisez le raccourci Ctrl + T. Cochez « Mon tableau comporte des en-têtes » si la première ligne contient un titre, par exemple « Statuts ».

Le tableau s’agrandira automatiquement lorsque vous ajouterez une nouvelle valeur sous la dernière ligne. Pour une utilisation fiable dans la validation des données, vous pouvez créer un nom défini :

  • Ouvrez l’onglet Formules ;
  • Cliquez sur Gestionnaire de noms puis « Nouveau » ;
  • Nommez la plage, par exemple ListeStatuts ;
  • Dans « Fait référence à », indiquez la colonne du tableau, par exemple =Tableau1[Statuts] ;
  • Utilisez ensuite =ListeStatuts comme source de la validation.

Cette organisation est particulièrement adaptée aux modèles Excel réutilisables. Vous pouvez modifier les options dans un seul endroit sans toucher à toutes les cellules contenant des listes.

Autoriser plusieurs choix dans une même cellule

Par défaut, une liste déroulante Excel ne permet de sélectionner qu’une seule valeur. Si vous choisissez « En cours », puis « Bloqué », le second choix remplace le premier. C’est le comportement normal de la validation des données.

Mais certains besoins nécessitent plusieurs sélections dans une cellule. Par exemple, une tâche peut concerner plusieurs services : « Marketing », « Commercial » et « Support ». Excel ne propose pas directement cette fonction avec une validation classique. Il faut utiliser une macro VBA.

Avant de commencer, enregistrez votre fichier au format .xlsm, c’est-à-dire « Classeur Excel prenant en charge les macros ». Sinon, votre code risque de disparaître à la fermeture du fichier. Et ce serait dommage après avoir passé cinq minutes à le copier-coller.

Ajouter une sélection multiple avec VBA

Supposons que votre liste déroulante se trouve dans la colonne C, de la cellule C2 à C100. L’objectif est d’ajouter chaque nouvelle sélection à la précédente, en séparant les valeurs par une virgule.

Ouvrez l’éditeur VBA avec le raccourci Alt + F11. Dans le volet de gauche, double-cliquez sur la feuille concernée, par exemple « Feuil1 ». Collez ensuite le code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ancienneValeur As String
    Dim nouvelleValeur As String

    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Range(« C2:C100 »)) Is Nothing Then Exit Sub
    If Target.Validation.Type <> 3 Then Exit Sub

    Application.EnableEvents = False

    nouvelleValeur = Target.Value
    Application.Undo
    ancienneValeur = Target.Value

    If ancienneValeur = «  » Then
        Target.Value = nouvelleValeur
    ElseIf nouvelleValeur = «  » Then
        Target.Value = ancienneValeur
    Else
        Target.Value = ancienneValeur & « ,  » & nouvelleValeur
    End If

    Application.EnableEvents = True
End Sub

Fermez ensuite l’éditeur VBA et retournez dans Excel. Lorsque vous sélectionnez une première valeur dans la liste, elle apparaît dans la cellule. Si vous choisissez une seconde valeur, elle est ajoutée à la suite.

Par exemple, la cellule peut contenir :

Marketing, Commercial, Support

Le code utilise l’événement Worksheet_Change, qui se déclenche dès qu’une cellule est modifiée. La ligne Application.Undo permet de récupérer la valeur précédente avant d’ajouter le nouveau choix.

Éviter les doublons avec une version améliorée

Avec le code précédent, un utilisateur peut sélectionner deux fois la même valeur. La cellule contiendra alors « Marketing, Marketing ». Pour éviter ce résultat, utilisez une version qui vérifie si le choix existe déjà.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ancienneValeur As String
    Dim nouvelleValeur As String

    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Range(« C2:C100 »)) Is Nothing Then Exit Sub
    If Target.Validation.Type <> 3 Then Exit Sub

    Application.EnableEvents = False
    nouvelleValeur = Target.Value
    Application.Undo
    ancienneValeur = Target.Value

    If ancienneValeur = «  » Then
        Target.Value = nouvelleValeur
    ElseIf InStr(1, ancienneValeur, nouvelleValeur, vbTextCompare) = 0 Then
        Target.Value = ancienneValeur & « ,  » & nouvelleValeur
    Else
        Target.Value = ancienneValeur
    End If

    Application.EnableEvents = True
End Sub

Cette version empêche les répétitions simples. Pour une gestion encore plus fine, notamment lorsque deux valeurs possèdent des noms proches, il est possible de découper le contenu avec la fonction Split et de contrôler chaque élément séparément.

Supprimer un choix déjà sélectionné

Un point important : la macro ajoute les choix, mais elle ne permet pas naturellement de retirer une valeur en la sélectionnant à nouveau. Pour gérer la suppression, plusieurs approches sont possibles.

  • Effacer toute la cellule et recommencer la sélection ;
  • Ajouter un bouton « Réinitialiser » qui vide les cellules concernées ;
  • Créer une macro qui retire la valeur sélectionnée si elle existe déjà ;
  • Utiliser une cellule par choix, ce qui facilite le filtrage et la modification.

Pour un fichier professionnel, la dernière solution est souvent la plus robuste. Une cellule contenant « Marketing, Commercial, Support » est agréable à lire, mais moins pratique à analyser qu’une structure avec une colonne par service ou une ligne par association.

Utiliser des cases à cocher pour plusieurs choix

Si votre objectif est de permettre plusieurs réponses visibles simultanément, les cases à cocher constituent une excellente alternative.

Dans Excel, ouvrez l’onglet Développeur, puis cliquez sur Insérer. Choisissez la case à cocher dans les contrôles de formulaire et dessinez-la sur la feuille. Vous pouvez ensuite la relier à une cellule en faisant un clic droit, puis en choisissant Format de contrôle.

Dans le champ « Cellule liée », indiquez par exemple F2. La cellule affichera VRAI lorsque la case est cochée et FAUX lorsqu’elle ne l’est pas.

Vous pouvez ensuite utiliser une formule pour afficher un résultat lisible :

=SI(F2; »Marketing sélectionné »; »Marketing non sélectionné »)

Les cases à cocher sont adaptées aux questionnaires, aux listes de contrôle et aux petits formulaires. Elles prennent cependant davantage de place qu’une liste déroulante et peuvent devenir encombrantes si vous proposez plusieurs dizaines de choix.

Afficher les choix sélectionnés dans une cellule

Lorsque plusieurs cellules renvoient VRAI ou FAUX, vous pouvez rassembler les choix cochés dans une seule cellule avec la fonction JOINDRE.TEXTE.

Supposons que les noms des options soient en A2:A5 et que les cases liées se trouvent en B2:B5. La formule suivante affiche uniquement les options sélectionnées :

=JOINDRE.TEXTE(« , « ;VRAI;SI(B2:B5=VRAI;A2:A5; » »))

Dans les versions récentes d’Excel, cette formule fonctionne directement. Dans les versions plus anciennes, elle peut nécessiter une validation matricielle avec Ctrl + Maj + Entrée.

Cette méthode sépare clairement la saisie, qui se fait avec les cases, du résultat, qui est généré par une formule. Elle est donc souvent plus facile à maintenir qu’une macro.

Ajouter une liste déroulante dépendante

Les choix multiples peuvent également être organisés en plusieurs niveaux. Par exemple, une première liste permet de choisir une catégorie, puis une seconde affiche uniquement les options associées.

Vous pouvez créer les catégories suivantes :

  • Matériel : Ordinateur, Écran, Clavier ;
  • Logiciel : Excel, Word, PowerPoint ;
  • Service : Formation, Support, Conseil.

Avec des plages nommées et la fonction INDIRECT, la seconde liste peut dépendre de la première. Si la cellule A2 contient « Matériel », la source de la validation en B2 peut être :

=INDIRECT(A2)

Le nom de la plage doit correspondre exactement au contenu de A2. Si vos catégories comportent des espaces, remplacez-les par des caractères compatibles avec les noms définis, ou utilisez une table de correspondance.

Conseils pour une utilisation fiable

Une liste de choix est simple à créer, mais quelques précautions évitent bien des problèmes :

  • Placez les valeurs sources dans une feuille dédiée et masquez-la si nécessaire ;
  • Utilisez des intitulés courts et compréhensibles ;
  • Évitez les doublons et les espaces invisibles en début ou en fin de texte ;
  • Ajoutez un message d’aide dans la validation des données ;
  • Prévoyez un message d’erreur lorsque la saisie manuelle n’est pas autorisée ;
  • Testez le fichier avec plusieurs utilisateurs avant de le diffuser ;
  • Si vous utilisez VBA, informez clairement les utilisateurs qu’ils doivent activer les macros ;
  • Conservez une copie de sauvegarde avant toute modification du code.

Enfin, choisissez la méthode en fonction du besoin. Une liste déroulante classique suffit dans la majorité des cas. Les cases à cocher conviennent mieux lorsque plusieurs réponses doivent rester visibles. La macro VBA devient intéressante lorsque plusieurs valeurs doivent être regroupées dans une seule cellule et que vous acceptez l’utilisation des macros.

Avec ces techniques, vos fichiers Excel gagnent en cohérence, en confort d’utilisation et en qualité de données. Et lorsque tout le monde choisit exactement la même valeur dans une liste propre, vos filtres, vos formules et vos tableaux croisés dynamiques vous remercient silencieusement.