Excel Mania

Créer un choix multiple sur Excel : méthode simple et rapide

Créer un choix multiple sur Excel : méthode simple et rapide

Créer un choix multiple sur Excel : méthode simple et rapide

Vous aimeriez sélectionner plusieurs éléments dans une même cellule Excel : plusieurs compétences, plusieurs catégories, plusieurs participants ou encore plusieurs tâches associées à un projet ? Par défaut, la liste déroulante d’Excel ne permet de choisir qu’une seule valeur. Dès qu’un nouvel élément est sélectionné, il remplace le précédent.

Heureusement, il existe une méthode simple pour transformer une liste déroulante classique en véritable choix multiple. Elle repose sur une petite macro VBA, facile à installer et suffisamment flexible pour s’adapter à vos tableaux.

Dans cet article, nous allons créer une liste déroulante permettant d’ajouter plusieurs choix dans une seule cellule, sans effacer les sélections précédentes.

Ce que nous allons créer

Imaginons un tableau de suivi de projets. Pour chaque projet, vous souhaitez renseigner les outils utilisés. Un même projet peut utiliser Excel, Power BI et Outlook.

Avec une liste déroulante classique, vous pourriez sélectionner Excel, puis Power BI. Mais la seconde sélection remplacerait la première. Le résultat final serait simplement « Power BI ».

Avec la méthode présentée ici, la cellule contiendra par exemple :

Chaque nouvelle sélection sera ajoutée à la suite des précédentes. Si vous sélectionnez deux fois le même élément, Excel évitera également de le dupliquer.

Préparer la liste des choix

Commencez par créer la liste des éléments disponibles dans une colonne. Par exemple, dans la colonne A d’une feuille nommée « Listes » :

Pour rendre cette liste plus pratique, vous pouvez lui attribuer un nom. Sélectionnez les cellules contenant les choix, puis cliquez dans la zone de nom située à gauche de la barre de formule. Saisissez par exemple Outils, puis validez avec la touche Entrée.

Cette étape n’est pas obligatoire, mais elle rend la règle de validation plus lisible. Au lieu d’utiliser une référence comme =Listes!$A$2:$A$6, vous pourrez simplement écrire =Outils.

Créer une liste déroulante classique

Avant d’ajouter le fonctionnement multi-sélection, il faut créer une liste déroulante standard. La macro s’appuiera sur cette liste pour récupérer les valeurs choisies.

Voici les étapes à suivre :

À ce stade, chaque cellule de la plage possède une flèche permettant de sélectionner un outil. Mais une nouvelle sélection remplace encore la précédente. C’est normal : la validation des données d’Excel ne gère pas nativement la sélection multiple dans une cellule.

Ajouter le code VBA

La macro doit être placée dans le module de la feuille qui contient la liste déroulante. Cette précision est importante : si votre liste se trouve dans la feuille « Suivi », le code doit être installé dans le module VBA de « Suivi », et non dans un module général.

Pour ouvrir l’éditeur VBA :

Private Sub Worksheet_Change(ByVal Target As Range)    Dim ancienneValeur As String    Dim nouvelleValeur As String    Dim separateur As String    separateur = "; "    If Target.CountLarge > 1 Then Exit Sub    If Intersect(Target, Me.Range("B2:B100")) Is Nothing Then Exit Sub    On Error GoTo Sortie    Application.EnableEvents = False    nouvelleValeur = Target.Value    Application.Undo    ancienneValeur = Target.Value    Target.Value = nouvelleValeur    If nouvelleValeur = "" Then GoTo Sortie    If ancienneValeur = "" Then        Target.Value = nouvelleValeur    ElseIf InStr(1, separateur & ancienneValeur & separateur, _                 separateur & nouvelleValeur & separateur, _                 vbTextCompare) = 0 Then        Target.Value = ancienneValeur & separateur & nouvelleValeur    Else        Target.Value = ancienneValeur    End IfSortie:    Application.EnableEvents = TrueEnd Sub

Ce code surveille la plage B2:B100. À chaque modification, il mémorise la nouvelle sélection, récupère l’ancienne valeur, puis assemble les deux éléments avec un point-virgule.

Adapter la plage à votre tableau

Dans le code, cette ligne détermine les cellules concernées :

If Intersect(Target, Me.Range("B2:B100")) Is Nothing Then Exit Sub

Si votre liste déroulante se trouve dans la colonne D, de la ligne 2 à la ligne 500, remplacez-la par :

If Intersect(Target, Me.Range("D2:D500")) Is Nothing Then Exit Sub

Vous pouvez également cibler plusieurs zones. Par exemple :

If Intersect(Target, Me.Range("B2:B100,D2:D100")) Is Nothing Then Exit Sub

Dans ce cas, la macro fonctionnera dans les deux plages.

Comprendre le fonctionnement de la macro

La procédure utilisée s’appelle Worksheet_Change. Il s’agit d’un événement Excel qui se déclenche automatiquement dès qu’une cellule de la feuille est modifiée.

Le code suit une logique assez simple :

La ligne Application.EnableEvents = False évite que la macro se déclenche en boucle lorsqu’elle modifie elle-même la cellule. La réactivation des événements est ensuite effectuée à la fin du traitement.

Le séparateur utilisé est défini ici :

separateur = "; "

Vous pouvez le remplacer par une virgule, une barre verticale ou un retour à la ligne. Par exemple, pour afficher chaque choix sur une ligne différente, utilisez :

separateur = vbLf

Dans ce dernier cas, pensez à activer le renvoi à la ligne automatique dans l’onglet Accueil, afin que le contenu soit correctement visible dans la cellule.

Tester le choix multiple

Revenez dans Excel et cliquez sur la flèche de la cellule B2. Sélectionnez « Excel ». La cellule affiche alors :

Ouvrez à nouveau la liste et sélectionnez « Power BI ». Le contenu devient :

Ajoutez ensuite « Teams ». Vous obtenez :

Si vous sélectionnez de nouveau « Excel », la macro ne l’ajoutera pas une seconde fois. Cette sécurité est particulièrement pratique lorsque la liste est longue ou lorsque plusieurs utilisateurs remplissent le fichier.

Supprimer un choix déjà sélectionné

La version de base de la macro permet d’ajouter des éléments et d’éviter les doublons, mais elle ne retire pas automatiquement un élément déjà présent. Pour supprimer un choix, vous pouvez effacer entièrement le contenu de la cellule et recommencer la sélection.

Pour une utilisation plus avancée, il est possible de créer une macro qui retire un élément lorsqu’il est sélectionné une seconde fois. Le principe consiste à rechercher la valeur dans la chaîne existante, puis à la supprimer au lieu de la conserver.

Cette variante est pratique, mais elle demande davantage de précautions lorsque les choix contiennent des caractères particuliers ou des mots proches. Pour la majorité des tableaux de suivi, la méthode consistant à effacer puis recréer la sélection reste la plus fiable.

Enregistrer le fichier au bon format

Une erreur fréquente consiste à enregistrer le classeur au format .xlsx. Ce format ne conserve pas les macros.

Utilisez plutôt le format :

Lors de l’enregistrement, Excel peut afficher un message vous demandant si vous souhaitez conserver les fonctionnalités VBA. Répondez oui.

À la prochaine ouverture du fichier, Excel pourra afficher une barre de sécurité. Cliquez sur Activer le contenu si vous faites confiance au fichier et à son origine. Sans cette autorisation, la liste déroulante fonctionnera comme une liste normale, mais la sélection multiple ne sera pas active.

Les limites de cette méthode

Cette solution est rapide et efficace, mais elle repose sur VBA. Elle ne fonctionnera donc pas de la même manière dans toutes les versions d’Excel.

Si votre fichier doit être partagé avec des personnes qui ne peuvent pas utiliser VBA, une alternative consiste à créer une colonne par choix, avec des cases à cocher ou des valeurs « Oui/Non ». Cette approche demande plus d’espace, mais elle facilite ensuite les filtres, les tableaux croisés dynamiques et les analyses.

Une alternative sans VBA avec plusieurs colonnes

Dans certains contextes, la sélection multiple dans une cellule n’est pas forcément la meilleure solution. Une cellule contenant « Excel ; Power BI ; Teams » est agréable à lire, mais moins facile à analyser automatiquement.

Pour exploiter les données, vous pouvez prévoir une colonne par option :

Chaque cellule peut contenir « Oui » ou « Non ». Vous pourrez ensuite filtrer les projets utilisant Power BI, compter le nombre de projets associés à Teams ou construire un tableau croisé dynamique.

La liste multi-sélection est donc idéale pour une saisie compacte et lisible. Les colonnes séparées sont souvent préférables pour les statistiques et les traitements avancés. Comme toujours avec Excel, le meilleur choix dépend de ce que vous comptez faire des données ensuite.

Quelques conseils pour un fichier plus fiable

Cette dernière astuce semble anodine, mais elle évite bien des incompréhensions. Sans indication, certains utilisateurs penseront qu’ils doivent choisir un seul élément, même si la macro permet d’en ajouter plusieurs.

Une solution pratique pour vos tableaux Excel

La liste déroulante multi-sélection permet de gagner du temps tout en conservant une présentation propre. Elle convient parfaitement aux suivis de projets, aux formulaires internes, aux inventaires et aux tableaux de qualification.

La méthode repose sur trois éléments : une liste de référence, une validation des données et un court code VBA placé dans le module de la feuille. Une fois ces éléments en place, chaque sélection vient compléter la précédente sans écraser le contenu déjà saisi.

Si vous utilisez cette technique dans un fichier partagé, pensez simplement à prévenir les utilisateurs de l’activation des macros et à enregistrer le classeur au format adapté. Votre liste déroulante ne sera plus limitée à un seul choix : Excel saura enfin faire preuve d’un peu plus de souplesse.

Quitter la version mobile