Sélectionner plusieurs éléments dans les Liste déroulante Excel – guide complet
Les listes déroulantes Excel constituent un outil remarquable pour garantir la cohérence des données et faciliter leur saisie. Par défaut, toutefois, elles ne permettent de sélectionner qu’un seul élément. Et si vous deviez choisir plusieurs éléments depuis la même liste déroulante ? Ce guide complet explore différentes méthodes pour autoriser les sélections multiples dans les listes déroulantes Excel, gérer les doublons, définir des séparateurs personnalisés et préciser la portée de ces listes.

- Autoriser les éléments en double
- Supprimer tous les éléments existants
- Définir un séparateur personnalisé
- Définir un(e) Plage limitée
- Exécuter dans une feuille protégée
Activer les sélections multiples dans Liste déroulante
Cette section présente deux méthodes pour vous permettre d’activer les sélections multiples dans les listes déroulantes sous Excel.
À l’aide du code VBA
Pour activer les sélections multiples dans une liste déroulante, utilisez « Visual Basic for Applications » (VBA) dans Excel. Ce script transforme le comportement d’une liste déroulante classique en une liste à choix multiples. Suivez ces étapes :
Étape 1 : Ouvrir l’éditeur Feuille (Code)
- Ouvrez la feuille contenant la liste déroulante pour laquelle vous souhaitez activer la sélection multiple.
- Cliquez avec le bouton droit sur l’onglet de la feuille, puis choisissez « Afficher le code » dans le menu contextuel.

Étape 2 : Utiliser le code VBA
Copiez dès maintenant le code VBA ci-dessous et collez-le dans la fenêtre Feuille (Code) que vous avez ouverte.
Code VBA : Activez les sélections multiples dans les listes déroulantes Excel.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Set TargetRange = Me.UsedRange ' Users can change target range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
If Not (xValue1 = xValue2 Or _
InStr(1, xValue1, delimiter & xValue2) > 0 Or _
InStr(1, xValue1, xValue2 & delimiter) > 0) Then
Target.Value = xValue1 & delimiter & xValue2
Else
Target.Value = xValue1
End If
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub

Résultat
Lorsque vous revenez à la feuille de calcul, la Liste déroulante vous permet désormais de choisir plusieurs options, comme illustré ci-dessous :

Le code VBA ci-dessus :
- S’applique à toutes les validations de données de type liste déroulante de la feuille de calcul actuelle, qu’elles soient existantes ou futures.
- Vous empêche de sélectionner plusieurs fois le même élément dans chaque liste déroulante.
- Utilisez la virgule comme séparateur pour le nombre d’éléments sélectionnés. Pour utiliser d’autres délimiteurs, veuillez consulter cette section afin de modifier le séparateur.
À l’aide de Kutools pour Excel en quelques clics
Si vous n’êtes pas à l’aise avec VBA, optez pour une solution bien plus simple : la fonctionnalité « Créer une liste déroulante avec des sélections multiples » de Kutools pour Excel. Cet outil convivial facilite grandement l’activation des sélections multiples dans les listes déroulantes, tout en vous permettant de personnaliser le séparateur et de gérer aisément les doublons selon vos besoins.
Après avoir installé Kutools pour Excel, rendez-vous dans l’onglet « Kutools », puis sélectionnez « Liste déroulante » > « Créer une liste déroulante avec des sélections multiples ». Vous devrez ensuite effectuer les réglages suivants.
- Indiquez la plage contenant la liste déroulante à partir de laquelle vous souhaitez sélectionner plusieurs éléments.
- Indiquez le séparateur à utiliser pour le nombre d’éléments sélectionnés dans la cellule de liste déroulante.
- Cliquez sur « OK » pour finaliser la configuration.
Résultat
Désormais, dès que vous cliquez sur une cellule contenant une liste déroulante dans la plage limitée, une zone de liste s’affiche à côté. Il vous suffit de cliquer sur le bouton « + » à côté d’un élément pour l’ajouter à la cellule, ou sur le bouton « - » pour supprimer ceux que vous ne souhaitez plus conserver. Découvrez cette fonctionnalité en action ci-dessous :

- Cochez l’option « Insérer un séparateur et passer à la ligne » pour afficher le nombre d’éléments sélectionnés verticalement dans la cellule. Pour un affichage horizontal, laissez cette option décochée.
- Cochez l’option « Activer la fonction de recherche » pour ajouter une barre de recherche à votre liste déroulante.
- Pour utiliser cette fonctionnalité, commencez par télécharger et installer Kutools pour Excel.
Autres opérations pour les Liste déroulante à sélections multiples
Cette section présente les différents scénarios susceptibles de se produire lors de l’activation des sélections multiples dans les listes déroulantes de validation des données.
Autoriser les éléments en double dans les Liste déroulante
Les doublons peuvent poser problème lorsque les sélections multiples sont autorisées dans une liste déroulante. Le code VBA ci-dessus exclut les éléments en double de la liste déroulante. Si vous devez conserver ces doublons, utilisez plutôt le code VBA présenté dans cette section.
Code VBA : Autoriser les doublons dans les Liste déroulante de validation des données
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Set TargetRange = Me.UsedRange ' Users can change target range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
Target.Value = xValue1 & delimiter & xValue2
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub
Résultat
Vous pouvez désormais sélectionner plusieurs éléments depuis la liste déroulante dans la feuille de calcul actuelle. Pour répéter un élément dans une cellule dotée d’une liste déroulante, il vous suffit de le sélectionner à nouveau dans la liste. Voir capture d’écran :

Supprimer des éléments existants des Liste déroulante
Après avoir sélectionné plusieurs éléments dans une liste déroulante, il peut arriver que vous souhaitiez supprimer l’un d’eux déjà présent dans la cellule. Cette section vous propose un autre extrait de code VBA pour réaliser cette opération facilement.
Code VBA : Supprimer des éléments existants de la cellule Liste déroulante
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRngDV As Range
Dim TargetRange As Range
Dim oldValue As String
Dim newValue As String
Dim delimiter As String
Dim allValues As Variant
Dim valueExists As Boolean
Dim i As Long
Dim cleanedValue As String
Set TargetRange = Me.UsedRange ' Set your specific range here
delimiter = ", " ' Set your desired delimiter here
If Target.CountLarge > 1 Then Exit Sub
' Check if the change is within the specific range
If Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRngDV = Target.SpecialCells(xlCellTypeAllValidation)
If xRngDV Is Nothing Or Target.Value = "" Then
' Skip if there's no data validation or if the cell is cleared
Application.EnableEvents = True
Exit Sub
End If
On Error GoTo 0
If Not Intersect(Target, xRngDV) Is Nothing Then
Application.EnableEvents = False
newValue = Target.Value
Application.Undo
oldValue = Target.Value
Target.Value = newValue
' Split the old value by delimiter and check if new value already exists
allValues = Split(oldValue, delimiter)
valueExists = False
For i = LBound(allValues) To UBound(allValues)
If Trim(allValues(i)) = newValue Then
valueExists = True
Exit For
End If
Next i
' Add or remove value based on its existence
If valueExists Then
' Remove the value
cleanedValue = ""
For i = LBound(allValues) To UBound(allValues)
If Trim(allValues(i)) <> newValue Then
If cleanedValue <> "" Then cleanedValue = cleanedValue & delimiter
cleanedValue = cleanedValue & Trim(allValues(i))
End If
Next i
Target.Value = cleanedValue
Else
' Add the value
If oldValue <> "" Then
Target.Value = oldValue & delimiter & newValue
Else
Target.Value = newValue
End If
End If
Application.EnableEvents = True
End If
End Sub
Résultat
Ce code VBA vous permet de sélectionner plusieurs éléments dans une liste déroulante et de supprimer facilement ceux déjà choisis. Une fois plusieurs éléments sélectionnés, il vous suffit de resélectionner celui que vous souhaitez retirer pour le désélectionner instantanément.

Définir un séparateur personnalisé
Le séparateur est défini comme une virgule dans les codes VBA ci-dessus. Vous pouvez modifier cette variable afin d’utiliser n’importe quel caractère comme séparateur entre les éléments de votre liste déroulante. Voici comment procéder :
Comme vous pouvez le constater, tous les codes VBA ci-dessus contiennent la ligne suivante :
delimiter = ", "
Il vous suffit de remplacer la virgule par le séparateur de votre choix. Par exemple, si vous souhaitez utiliser un point-virgule comme séparateur, modifiez la ligne ainsi :
delimiter = "; "
delimiter = vbNewLine
Définir une Plage limitée
Les codes VBA ci-dessus s’appliquent à toutes les listes déroulantes de la feuille de calcul active. Si vous souhaitez qu’ils concernent uniquement une plage spécifique de listes déroulantes, vous pouvez définir cette plage directement dans le code VBA, comme suit.
Comme vous pouvez le constater, tous les codes VBA ci-dessus contiennent la ligne suivante :
Set TargetRange = Me.UsedRange
Il vous suffit de modifier la ligne ainsi :
Set TargetRange = Me.Range("C2:C10")
Exécuter dans une feuille protégée
Imaginez avoir protégé une feuille de calcul avec le mot de passe « 123 », tout en définissant au préalable les cellules contenant des listes déroulantes comme « Déverrouillées » avant d’activer la protection — ce qui garantit que la fonctionnalité de sélection multiple reste opérationnelle. Toutefois, les codes VBA présentés précédemment ne fonctionnent pas dans ce scénario. Cette section propose un autre script VBA, spécialement conçu pour gérer la sélection multiple dans une feuille protégée.
Code VBA : Activer la sélection multiple dans les Liste déroulante sans doublons
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Dim isProtected As Boolean
Dim pswd As Variant
Set TargetRange = Me.UsedRange ' Set your specific range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
' Check if sheet is protected
isProtected = Me.ProtectContents
If isProtected Then
' If protected, temporarily unprotect. Adjust or remove the password as needed.
pswd = "yourPassword" ' Change or remove this as needed
Me.Unprotect Password:=pswd
End If
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then
If isProtected Then Me.Protect Password:=pswd
Exit Sub
End If
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
If Not (xValue1 = xValue2 Or _
InStr(1, xValue1, delimiter & xValue2) > 0 Or _
InStr(1, xValue1, xValue2 & delimiter) > 0) Then
Target.Value = xValue1 & delimiter & xValue2
Else
Target.Value = xValue1
End If
End If
Application.EnableEvents = True
On Error GoTo 0
' Re-protect the sheet if it was protected
If isProtected Then
Me.Protect Password:=pswd
End If
End Sub
En activant la sélection multiple dans les listes déroulantes Excel, vous améliorez considérablement la fonctionnalité et la flexibilité de vos feuilles de calcul. Que vous soyez à l’aise avec le codage VBA ou que vous préfériez une solution plus directe comme Kutools, vous disposez désormais des moyens de transformer vos listes déroulantes standard en outils dynamiques permettant plusieurs sélections. Grâce à ces compétences, vous pouvez désormais créer des documents Excel plus interactifs et conviviaux. Pour approfondir vos connaissances sur Excel, notre site propose une multitude de tutoriels.Découvrez davantage d’astuces et de conseils Excel ici.
Articles associés
Saisie semi-automatique dans une liste déroulante Excel
Si vous utilisez une liste déroulante créée via la validation des données et qu’elle contient de nombreuses valeurs, vous devez soit faire défiler toute la liste pour trouver l’élément souhaité, soit saisir le mot complet directement dans la cellule. Imaginez s’il existait une solution permettant d’activer la saisie semi-automatique dès la première lettre tapée dans la liste déroulante : tout deviendrait bien plus simple ! Ce tutoriel vous explique précisément comment mettre en place cette astuce.
Créer une liste déroulante à partir d’un autre classeur dans Excel
Il est assez simple de créer une liste déroulante via la validation des données entre feuilles d’un même classeur. Mais que faire lorsque les données nécessaires à cette validation se trouvent dans un autre classeur ? Ce tutoriel vous explique pas à pas comment créer une liste déroulante à partir d’un autre classeur dans Excel.
Créer une liste déroulante interrogeable dans Excel
Lorsqu’une liste déroulante contient de nombreuses options, il devient difficile d’y repérer rapidement celle que vous cherchez. Nous avons déjà expliqué comment activer la saisie semi-automatique dans une liste déroulante dès la première lettre tapée. Mais au-delà de cette fonctionnalité, vous pouvez aussi transformer votre liste en une liste interrogeable pour gagner en efficacité et trouver instantanément les bonnes valeurs. Découvrez dans ce tutoriel comment rendre votre liste déroulante interrogeable !
Remplissez automatiquement d’autres cellules en sélectionnant une valeur dans une liste déroulante Excel
Supposons que vous ayez créé une liste déroulante à partir des valeurs situées dans la plage B8:B14. Lorsque vous sélectionnez une valeur dans cette liste, vous souhaitez que la valeur correspondante de la plage C8:C14 s’insère automatiquement dans une cellule donnée. Les méthodes présentées dans ce tutoriel vous permettront de résoudre ce problème.
Les meilleurs outils de productivité Office
Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab Apporte une interface à onglets à Office et rend votre travail bien plus facile
- Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvre et crée plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50 % et réduit des centaines de clics de souris chaque jour !
Tous les compléments Kutools. Un seul installateur
Kutools for Office regroupe des compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait la solution idéale pour les équipes collaborant au sein des applications Office.
- Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
- Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
- Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
- Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription ni carte bancaire requise
- Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels
Table des matières
- Activer les sélections multiples
- Utiliser du code VBA
- Utiliser Kutools pour Excel en quelques clics
- Autres opérations
- Autoriser les éléments en double
- Supprimer tous les éléments existants
- Définir un séparateur personnalisé
- Définir un(e) Plage limitée
- Exécuter dans une feuille protégée
- Articles associés
- Les meilleurs outils de productivité Office
- Commentaires

