KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Sélectionner plusieurs éléments dans les Liste déroulante Excel – guide complet

AuteurSiluvia Date de modification

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.

Capture d’écran de la démonstration animée illustrant les sélections multiples dans une liste déroulante Excel.

Conseil : Avant d’appliquer les méthodes suivantes, assurez-vous d’avoir déjà créé des Liste déroulante dans vos feuilles de calcul. Si vous souhaitez savoir comment créer des Liste déroulante de validation des données, suivez les instructions de cet article :Comment créer des Liste déroulante de validation des données dans Excel.

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)
  1. Ouvrez la feuille 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, puis choisissez « Afficher le code » dans le menu contextuel.
    Capture d’écran de l’option Afficher le code dans le menu contextuel de l’onglet d’une feuille Excel
É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

Capture d’écran du code VBA collé dans l’éditeur VBA d’Excel

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 :

Capture d’écran de la démonstration animée illustrant les sélections multiples dans une liste déroulante Excel

Remarques:
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.

Kutools pour Excelpropose plus de 300 fonctionnalités avancées pour simplifier les tâches complexes, stimulant ainsi créativité et efficacité.Intégré aux capacités de l’IA, Kutools automatise les tâches avec précision, rendant la gestion des données plus fluide.Informations détaillées sur Kutools pour Excel...         Essai gratuit...

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.

  1. Indiquez la plage contenant la liste déroulante à partir de laquelle vous souhaitez sélectionner plusieurs éléments.
  2. Indiquez le séparateur à utiliser pour le nombre d’éléments sélectionnés dans la cellule de liste déroulante.
  3. Cliquez sur « OK » pour finaliser la configuration.
    Capture d’écran de l’écran de configuration de la liste déroulante à sélection multiple de Kutools, avec les paramètres pour la plage et les options de séparateur
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 :

Capture d’écran illustrant une démonstration de la gestion des sélections multiples dans une liste déroulante Excel à l’aide de Kutools

Remarques:
  • 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 :

Capture d’écran de la démonstration animée illustrant les sélections en double dans une liste déroulante Excel


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.

Capture d’écran de la démonstration animée montrant comment supprimer des éléments existants d’une liste déroulante Excel


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 = "; "
Remarque : Pour remplacer le séparateur par un saut de ligne dans ces codes VBA, modifiez cette ligne ainsi :
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")
Remarque : Ici, C2:C10 est la plage contenant les Liste déroulante que vous souhaitez configurer pour les sélections multiples.

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
Remarque : Dans le code, veillez à remplacer « yourPassword » dans la ligne pswd = «yourPassword» par le mot de passe réel utilisé pour protéger la feuille. Par exemple, si votre mot de passe est « abc123 », la ligne doit être pswd = "abc123".

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.

Les meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générer du code|  Créer formules personnalisées  |  Analyser les données et générer des graphiques|  Appeler Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheV avec critères multiples  |  RechercheV avec valeurs multiples  |   RechercheV sur plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créer rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à 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 des plages et des colonnes...
Fonctionnalités phares:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
... et bien plus encore... and more:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|de fusion et de scission   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans votre langue préférée – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

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.

ExcelWordOutlookTabsPowerPoint
  • 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