Accéder au contenu principal

Sélectionner plusieurs éléments dans une liste déroulante Excel – guide complet

Author: Siluvia Last Modified: 2025-08-06

Les listes déroulantes Excel sont un outil fantastique pour garantir la cohérence des données et faciliter leur saisie. Cependant, par défaut, elles vous limitent à la sélection d'un seul élément. Mais que faire si vous avez besoin de sélectionner plusieurs éléments dans une même liste déroulante ? Ce guide complet explore différentes méthodes pour activer 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.

A screenshot of the animated demo showing multiple selections in an Excel drop-down list.

Astuce : Avant d'appliquer les méthodes suivantes, assurez-vous d'avoir créé des listes déroulantes dans vos feuilles de calcul au préalable. Si vous souhaitez savoir comment créer des listes déroulantes avec validation des données, suivez les instructions dans cet article : How to create data validation drop-down lists in Excel.

Activer les sélections multiples dans une liste déroulante

Cette section propose deux méthodes pour vous aider à activer les sélections multiples dans une liste déroulante Excel.

Utilisation du code VBA

Pour permettre des sélections multiples dans une liste déroulante, vous pouvez utiliser « Visual Basic for Applications » (VBA) dans Excel. Le script peut modifier le comportement d'une liste déroulante pour en faire une liste à choix multiples. Veuillez procéder comme suit.

Étape 1 : Ouvrir l'éditeur de feuille (Code)
  1. Ouvrez la feuille de calcul contenant la liste déroulante pour laquelle vous souhaitez activer la sélection multiple.
  2. Cliquez avec le bouton droit sur l'onglet de la feuille et sélectionnez "Afficher le code" dans le menu contextuel.
    A screenshot of the View Code option in the context menu of a sheet tab in Excel
Étape 2 : Utiliser le code VBA

Copiez maintenant le code VBA suivant et collez-le dans la fenêtre de la feuille (Code) qui s'ouvre.

Code VBA : Activer les sélections multiples dans une liste déroulante 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

A screenshot of the VBA code pasted into the Excel VBA editor

Résultat

Lorsque vous revenez à la feuille de calcul, la liste déroulante vous permettra de choisir plusieurs options, voir la démonstration ci-dessous :

A screenshot of the animated demo showing multiple selections in an Excel drop-down list

Notes:
Le code VBA ci-dessus :
  • S'applique à toutes les listes déroulantes avec validation des données dans la feuille de calcul actuelle, tant celles existantes que celles créées ultérieurement.
  • Vous empêche de sélectionner le même élément plus d'une fois dans chaque liste déroulante.
  • Utilise la virgule comme séparateur pour les éléments sélectionnés. Pour utiliser d'autres délimiteurs, veuillez consulter cette section pour changer le séparateur.

Utilisation de Kutools pour Excel en quelques clics

Si vous n'êtes pas à l'aise avec VBA, une alternative plus simple est la fonctionnalité "Liste déroulante multi-sélection" de "Kutools pour Excel". Cet outil convivial simplifie l'activation des sélections multiples dans les listes déroulantes, vous permettant de personnaliser le séparateur et de gérer facilement les doublons pour répondre à différents besoins.

Kutools pour Excel propose plus de 300 fonctionnalités avancées pour simplifier les tâches complexes, augmentant ainsi la créativité et l'efficacité. Intégré à des capacités d'IA, Kutools automatise les tâches avec précision, rendant la gestion des données facile et sans effort. Informations détaillées sur Kutools pour Excel...  Essai gratuit...

Après avoir installé Kutools pour Excel, accédez à l'onglet "Kutools", sélectionnez "Liste déroulante" > "Liste déroulante multi-sélection". Ensuite, vous devez configurer comme suit.

  1. Spécifiez la plage contenant la liste déroulante à partir de laquelle vous devez sélectionner plusieurs éléments.
  2. Spécifiez le séparateur pour les éléments sélectionnés dans la cellule de la liste déroulante.
  3. Cliquez sur "OK" pour terminer les paramètres.
Résultat

Maintenant, lorsque vous cliquez sur une cellule avec une liste déroulante dans la plage spécifiée, une liste déroulante apparaîtra à côté. Il suffit de cliquer sur le bouton "+" à côté des éléments pour les ajouter à la cellule de la liste déroulante, et cliquez sur le bouton "-" pour supprimer tout élément indésirable. Voir la démonstration ci-dessous :

A screenshot showing a demo of managing multiple selections in an Excel drop-down list using Kutools

Notes :
  • Cochez l'option "Insérer un séparateur et passer à la ligne" si vous souhaitez afficher les éléments sélectionnés verticalement dans la cellule. Si vous préférez une disposition horizontale, laissez cette option décochée.
  • Cochez l'option "Activer la fonction de recherche" si vous souhaitez ajouter une barre de recherche à votre liste déroulante.
  • Pour appliquer cette fonctionnalité, veuillez télécharger et installer Kutools pour Excel d'abord.

Plus d'opérations pour une liste déroulante multi-sélection

Cette section regroupe les différents scénarios qui peuvent être nécessaires lors de l'activation de sélections multiples dans la liste déroulante de validation des données.


Autoriser les éléments en double dans une liste déroulante

Les doublons peuvent poser problème lorsque des sélections multiples sont autorisées dans une liste déroulante. Le code VBA ci-dessus n'autorise pas les éléments en double dans la liste déroulante. Si vous avez besoin de conserver des éléments en double, essayez le code VBA de cette section.

Code VBA : Autoriser les doublons dans une 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

Maintenant, vous pouvez sélectionner plusieurs éléments dans les listes déroulantes de la feuille de calcul actuelle. Pour répéter un élément dans une cellule de liste déroulante, continuez à sélectionner cet élément dans la liste. Voir capture d'écran :

A screenshot of the animated demo showing duplicate selections in an Excel drop-down list


Supprimer tous les éléments existants d'une liste déroulante

Après avoir sélectionné plusieurs éléments dans une liste déroulante, vous devrez peut-être supprimer un élément existant de la cellule de la liste déroulante. Cette section fournit un autre morceau de code VBA pour vous aider à accomplir cette tâche.

Code VBA : Supprimer tous les éléments existants de la cellule de la 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 tout élément déjà choisi. Après avoir sélectionné plusieurs éléments, si vous voulez en supprimer un spécifique, il suffit de le sélectionner à nouveau dans la liste.

A screenshot of the animated demo showing how to remove existing items from a drop-down list in Excel


Définir un séparateur personnalisé

Le délimiteur est défini comme une virgule dans les codes VBA ci-dessus. Vous pouvez modifier cette variable pour utiliser n'importe quel caractère préféré comme séparateur pour les sélections de la liste déroulante. Voici comment procéder :

Comme vous pouvez le voir, les codes VBA ci-dessus contiennent tous la ligne suivante :

delimiter = ", "

Il vous suffit de remplacer la virgule par n'importe quel séparateur dont vous avez besoin. Par exemple, si vous souhaitez séparer les éléments par un point-virgule, changez la ligne en :

delimiter = "; "
Remarque : Pour changer le délimiteur en caractère de nouvelle ligne dans ces codes VBA, modifiez cette ligne en :
delimiter = vbNewLine

Définir une plage spécifique

Les codes VBA ci-dessus s'appliquent à toutes les listes déroulantes de la feuille de calcul actuelle. Si vous souhaitez que les codes VBA ne s'appliquent qu'à une certaine plage de listes déroulantes, vous pouvez spécifier la plage dans le code VBA ci-dessus comme suit.

Comme vous pouvez le voir, les codes VBA ci-dessus contiennent tous la ligne suivante :

Set TargetRange = Me.UsedRange

Il vous suffit de changer la ligne en :

Set TargetRange = Me.Range("C2:C10")
Remarque : Ici, C2:C10 est la plage contenant la liste déroulante que vous souhaitez définir comme multi-sélection.

Exécution dans une feuille de calcul protégée

Imaginez que vous ayez protégé une feuille de calcul avec le mot de passe "123" et défini les cellules de la liste déroulante comme "Déverrouillées" avant d'activer la protection, assurant ainsi que la fonction multi-sélection reste active après la protection. Cependant, les codes VBA mentionnés ci-dessus ne fonctionnent pas dans ce cas, et cette section décrit un autre script VBA spécialement conçu pour gérer la fonction multi-sélection dans une feuille de calcul protégée.

Code VBA : Activer la sélection multiple dans une 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
Remarque : Dans le code, assurez-vous de remplacer “yourPassword” dans la ligne pswd = "yourPassword" par le mot de passe réel que vous utilisez pour protéger la feuille de calcul. Par exemple, si votre mot de passe est "abc123", alors la ligne doit être pswd = "abc123".

En activant les sélections multiples dans les listes déroulantes Excel, vous pouvez grandement améliorer 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 simple comme Kutools, vous avez désormais la capacité de transformer vos listes déroulantes standard en outils dynamiques multi-sélection. Avec ces compétences, vous êtes maintenant équipé pour créer des documents Excel plus dynamiques et conviviaux. Pour ceux qui souhaitent approfondir les capacités d'Excel, notre site web regorge de tutoriels. Découvrez plus d'astuces et de conseils Excel ici.

Meilleurs outils de productivité Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données grâce à : Exécution intelligente   |  Générer du code  |  Créer des Formules personnalisées  |  Analyser des données et générer des graphiques  |  Appeler les Fonctions améliorées
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Combiner les colonnes ou cellules sans perdre de données   |  Arrondir...
Super RECHERCHEV : Recherche multi-critères    Recherche multi-valeurs  |   Recherche multi-feuilles   |   Correspondance floue ....
Liste déroulante avancée : Créer rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante avec sélection multiple ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer des colonnes  |  Basculer l’état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités à la une : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & de feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Chiffrer/Déchiffrer les cellules    Envoyer un e-mail par liste   |  Super Filtre   |   Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...) ...
Top15 des ensembles d’outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   Plus de50 types de graphiques (Diagramme de Gantt, ...)   |   Plus de40 formules intelligentes (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils dinsertion (Insérer un code QR, Insérer une image depuis le chemin, ...)   |  12 outils de conversion (Convertir en mots, Conversion de devises, ...)   |  7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...)   |   ... et bien plus encore
Utilisez Kutools dans votre langue préférée: compatible avec l’anglais, l’espagnol, l’allemand, le français, le chinois et plus de40 autres langues !

Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...


Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail

  • Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
  • Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!