Comment créer une liste déroulante avec plusieurs sélections ou valeurs dans Excel?
Par défaut, vous ne pouvez sélectionner qu'un seul élément dans une liste déroulante de validation des données dans Excel. Comment pouvez-vous effectuer plusieurs sélections dans la liste déroulante comme illustré ci-dessous ? Les méthodes décrites dans cet article peuvent vous aider à résoudre le problème.
Plus de tutoriel pour la liste déroulante ...
Créer une liste déroulante avec plusieurs sélections avec le code VBA
Cette section fournit deux codes VBA pour vous aider à effectuer plusieurs sélections dans les listes déroulantes d'une feuille de calcul. Les deux codes VBA peuvent réaliser :
Vous pouvez appliquer l'un des codes VBA suivants pour effectuer plusieurs sélections dans une liste déroulante dans une feuille de calcul dans Excel. Veuillez procéder comme suit.
1. Ouvrez la feuille de calcul contenant les listes déroulantes de validation des données à partir desquelles vous souhaitez effectuer plusieurs sélections. Cliquez avec le bouton droit sur l'onglet de la feuille et sélectionnez Voir le code dans le menu contextuel.
2. dans le Microsoft Visual Basic pour applications fenêtre, copiez le code VBA ci-dessous dans la fenêtre de code. Voir la capture d'écran:
Code VBA 1 : Autoriser plusieurs sélections dans une liste déroulante sans doublons
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2019/11/13
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
If Target.Count > 1 Then Exit Sub
On Error Resume Next
Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
If Not Application.Intersect(Target, xRng) Is Nothing Then
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" Then
If xValue2 <> "" Then
If xValue1 = xValue2 Or _
InStr(1, xValue1, ", " & xValue2) Or _
InStr(1, xValue1, xValue2 & ",") Then
Target.Value = xValue1
Else
Target.Value = xValue1 & ", " & xValue2
End If
End If
End If
End If
Application.EnableEvents = True
End Sub
3. appuie sur le autre + Q touches pour fermer le Microsoft Visual Basic pour applications fenêtre.
Vous pouvez maintenant sélectionner plusieurs éléments dans la liste déroulante de la feuille de calcul en cours.
Supposons que vous ayez accidentellement sélectionné un élément et que vous deviez le supprimer sans effacer toute la cellule et recommencer. Le code VBA 2 suivant peut vous rendre service.
Code VBA 2 : Autoriser plusieurs sélections dans une liste déroulante sans doublons (supprimer les éléments existants en les sélectionnant à nouveau)
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2023/01/11
'Updated by Ken Gardner 2022/07/11
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim semiColonCnt As Integer
Dim xType As Integer
If Target.Count > 1 Then Exit Sub
On Error Resume Next
xType = 0
xType = Target.Validation.Type
If xType = 3 Then
Application.ScreenUpdating = False
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" Then
If xValue2 <> "" Then
If xValue1 = xValue2 Or xValue1 = xValue2 & ";" Or xValue1 = xValue2 & "; " Then ' leave the value if only one in list
xValue1 = Replace(xValue1, "; ", "")
xValue1 = Replace(xValue1, ";", "")
Target.Value = xValue1
ElseIf InStr(1, xValue1, "; " & xValue2) Then
xValue1 = Replace(xValue1, xValue2, "") ' removes existing value from the list on repeat selection
Target.Value = xValue1
ElseIf InStr(1, xValue1, xValue2 & ";") Then
xValue1 = Replace(xValue1, xValue2, "")
Target.Value = xValue1
Else
Target.Value = xValue1 & "; " & xValue2
End If
Target.Value = Replace(Target.Value, ";;", ";")
Target.Value = Replace(Target.Value, "; ;", ";")
If Target.Value <> "" Then
If Right(Target.Value, 2) = "; " Then
Target.Value = Left(Target.Value, Len(Target.Value) - 2)
End If
End If
If InStr(1, Target.Value, "; ") = 1 Then ' check for ; as first character and remove it
Target.Value = Replace(Target.Value, "; ", "", 1, 1)
End If
If InStr(1, Target.Value, ";") = 1 Then
Target.Value = Replace(Target.Value, ";", "", 1, 1)
End If
semiColonCnt = 0
For i = 1 To Len(Target.Value)
If InStr(i, Target.Value, ";") Then
semiColonCnt = semiColonCnt + 1
End If
Next i
If semiColonCnt = 1 Then ' remove ; if last character
Target.Value = Replace(Target.Value, "; ", "")
Target.Value = Replace(Target.Value, ";", "")
End If
End If
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
Notes:
Créez facilement une liste déroulante avec plusieurs sélections avec un outil incroyable
Comme vous pouvez le voir, les codes VBA ci-dessus ne sont pas faciles à gérer. Ici, nous recommandons fortement le Liste déroulante à sélection multiple caractéristique de Kutools for Excel pour vous aider à gérer facilement cette tâche en quelques clics. Avec cette fonctionnalité, vous pouvez facilement sélectionner plusieurs éléments dans la liste déroulante dans une plage spécifiée, la feuille de calcul en cours, le classeur en cours ou tous les classeurs ouverts selon vos besoins.
Conseil : Avant d'appliquer cet outil, veuillez installer Kutools for Excel d'abord. Aller au téléchargement gratuit maintenant.
- Sélectionnez Kutools > La liste déroulante > Liste déroulante à sélection multiple.
- Dans le Liste déroulante à sélection multiple boîte de dialogue, effectuez les réglages suivants.
2.1) Spécifiez où vous souhaitez appliquer cette fonctionnalité dans le Définir la portée section;2.2) Spécifiez le séparateur pour les éléments sélectionnés dans une cellule ;2.3) Décidez de la direction du texte;2.4) Cliquez sur OK.

Résultat
Articles Liés:
Saisie semi-automatique lors de la saisie dans la liste déroulante Excel
Si vous avez une liste déroulante de validation des données avec de grandes valeurs, vous devez faire défiler la liste vers le bas juste pour trouver la bonne, ou taper le mot entier directement dans la zone de liste. S'il existe une méthode permettant de compléter automatiquement lors de la saisie de la première lettre dans la liste déroulante, tout deviendra plus facile. Ce didacticiel fournit la méthode pour résoudre le problème.
Créer une liste déroulante à partir d'un autre classeur dans Excel
Il est assez facile de créer une liste déroulante de validation des données parmi les feuilles de calcul d'un classeur. Mais si les données de liste dont vous avez besoin pour la validation des données se trouvent dans un autre classeur, que feriez-vous? Dans ce didacticiel, vous apprendrez à créer une liste déroulante à partir d'un autre classeur dans Excel en détail.
Créer une liste déroulante consultable dans Excel
Pour une liste déroulante avec de nombreuses valeurs, trouver la bonne n'est pas une tâche facile. Auparavant, nous avons introduit une méthode de liste déroulante de remplissage automatique lorsque vous entrez la première lettre dans la liste déroulante. Outre la fonction de saisie semi-automatique, vous pouvez également rendre la liste déroulante consultable pour améliorer l'efficacité du travail en trouvant les valeurs appropriées dans la liste déroulante. Pour rendre la liste déroulante consultable, essayez la méthode de ce didacticiel.
Remplir automatiquement d'autres cellules lors de la sélection de valeurs dans la liste déroulante Excel
Supposons que vous ayez créé une liste déroulante basée sur les valeurs de la plage de cellules B8: B14. Lorsque vous sélectionnez une valeur dans la liste déroulante, vous souhaitez que les valeurs correspondantes dans la plage de cellules C8: C14 soient automatiquement renseignées dans une cellule sélectionnée. Pour résoudre le problème, les méthodes de ce didacticiel vous rendront service.
Meilleurs outils de productivité bureautique
Boostez vos compétences Excel avec Kutools for Excelet faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel Offre plus de 300 fonctionnalités avancées pour augmenter la 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 facilite grandement votre travail
- Activer l'édition 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, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!





















