Comprendre l'intérêt d'une liste déroulante à choix multiple dans Excel
Une liste déroulante classique dans Excel permet de sélectionner une seule option parmi une liste prédéfinie. Une liste déroulante à choix multiple, quant à elle, offre la possibilité de sélectionner plusieurs options simultanément. Cela s'avère particulièrement utile dans les situations suivantes :
- Gestion de projets : Assignation de plusieurs ressources à une même tâche.
- Enquêtes et sondages : Permettre aux répondants de choisir plusieurs réponses à une question.
- Gestion des stocks : Indiquer les différents fournisseurs pour un même produit.
- Suivi de compétences : Identifier les compétences maîtrisées par un employé.
En résumé, une liste déroulante à choix multiple offre une plus grande flexibilité et permet de représenter des données plus complexes.
Méthode 1 : Utiliser une colonne d'assistance et la fonction TEXTJOIN (Excel 2019 et versions ultérieures)
Cette méthode est la plus simple si vous disposez d'Excel 2019 ou d'une version plus récente, car elle utilise la fonction TEXTJOIN.
Étape 1 : Préparer la liste des options
Créez une colonne dans votre feuille Excel contenant la liste des options que vous souhaitez proposer dans votre liste déroulante. Par exemple, vous pouvez lister les noms de différents fruits dans la colonne A (A1:A5).
Étape 2 : Créer des cases à cocher
- Activez l'onglet "Développeur". Si cet onglet n'est pas visible, allez dans Fichier > Options > Personnaliser le ruban et cochez la case "Développeur".
- Dans l'onglet "Développeur", cliquez sur "Insérer" puis choisissez le contrôle "Case à cocher" (sous "Contrôles de formulaire").
- Dessinez la case à cocher à côté de la première option de votre liste (par exemple, en B1).
- Cliquez avec le bouton droit sur la case à cocher et sélectionnez "Format de contrôle".
- Dans l'onglet "Contrôle", définissez la "Cellule liée" sur la cellule C1 (ou une autre cellule vide). Cette cellule affichera
VRAIsi la case est cochée etFAUXsi elle ne l'est pas. - Copiez la case à cocher et collez-la à côté de chaque option de votre liste. Assurez-vous que chaque case à cocher est liée à une cellule différente (C2, C3, etc.).
Description de l'image : Capture d'écran montrant une liste de fruits (Colonne A) avec des cases à cocher à côté (Colonne B) et les valeurs VRAI/FAUX correspondantes dans la colonne C, liées aux cases à cocher.
Étape 3 : Utiliser la fonction TEXTJOIN pour concaténer les options sélectionnées
Dans une cellule vide (par exemple, D1), entrez la formule suivante :
=TEXTJOIN(", ", VRAI, IF(C1:C5=TRUE, A1:A5, ""))
TEXTJOIN(", ", VRAI, ...): Cette fonction concatène les chaînes de texte en utilisant un séparateur (ici, une virgule et un espace ", "). L'argumentVRAIindique d'ignorer les cellules vides.IF(C1:C5=TRUE, A1:A5, ""): Cette partie de la formule vérifie si chaque cellule de la colonne C (celle liée aux cases à cocher) est égale àVRAI. Si c'est le cas, elle renvoie la valeur correspondante de la colonne A (le nom du fruit). Sinon, elle renvoie une chaîne vide (" ").
Étape 4 : Créer la liste déroulante
- Sélectionnez la cellule où vous souhaitez afficher la liste déroulante.
- Allez dans l'onglet "Données" et cliquez sur "Validation des données".
- Dans la boîte de dialogue "Validation des données", sélectionnez "Liste" dans le menu déroulant "Autoriser".
- Dans le champ "Source", entrez la référence de la cellule contenant la formule
TEXTJOIN(par exemple,=D1). - Cliquez sur "OK".
Vous avez maintenant une liste déroulante à choix multiple. Lorsque vous cochez ou décochez les cases à cocher, la cellule contenant la liste déroulante affichera les options sélectionnées, séparées par des virgules.
Méthode 2 : Utiliser VBA (Visual Basic for Applications)
Cette méthode est plus complexe, mais elle offre une plus grande flexibilité et peut être utilisée dans les versions d'Excel antérieures à 2019.
Étape 1 : Insérer un contrôle ListBox
- Activez l'onglet "Développeur" (comme expliqué dans la méthode 1).
- Dans l'onglet "Développeur", cliquez sur "Insérer" puis choisissez le contrôle "ListBox" (sous "Contrôles ActiveX").
- Dessinez le ListBox dans votre feuille Excel.
- Cliquez avec le bouton droit sur le ListBox et sélectionnez "Propriétés".
Étape 2 : Configurer le ListBox
Dans la fenêtre des propriétés du ListBox :
- ListFillRange : Entrez la plage de cellules contenant la liste des options (par exemple,
A1:A5). - MultiSelect : Définissez cette propriété sur
1 - fmMultiSelectMultipour permettre la sélection multiple. - LinkedCell : Laissez ce champ vide pour l'instant.
Étape 3 : Écrire le code VBA
- Cliquez avec le bouton droit sur le ListBox et sélectionnez "Afficher le code". Cela ouvrira l'éditeur VBA.
- Collez le code VBA suivant dans la fenêtre de l'éditeur :
Private Sub ListBox1_Change()
Dim i As Integer
Dim strResult As String
strResult = ""
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
strResult = strResult & ListBox1.List(i) & ", "
End If
Next i
If Len(strResult) > 0 Then
strResult = Left(strResult, Len(strResult) - 2) ' Supprimer la dernière virgule et l'espace
End If
Sheet1.Range("D1").Value = strResult ' Modifier "D1" par la cellule où vous souhaitez afficher le résultat
End Sub
Explication du code VBA :
Private Sub ListBox1_Change(): Cette procédure est exécutée chaque fois que la sélection dans le ListBox change.Dim i As Integer, strResult As String: Déclare les variablesi(pour la boucle) etstrResult(pour stocker le résultat).For i = 0 To ListBox1.ListCount - 1: Boucle à travers chaque élément de la liste.If ListBox1.Selected(i) Then: Vérifie si l'élément actuel est sélectionné.strResult = strResult & ListBox1.List(i) & ", ": Si l'élément est sélectionné, ajoute-le à la chaînestrResult, suivi d'une virgule et d'un espace.If Len(strResult) > 0 Then strResult = Left(strResult, Len(strResult) - 2): Supprime la dernière virgule et l'espace sistrResultn'est pas vide.Sheet1.Range("D1").Value = strResult: Ecrit le résultat dans la cellule D1 de la feuille Sheet1. Modifiez "D1" par la cellule de votre choix.
Étape 4 : Tester la liste déroulante à choix multiple
Retournez à votre feuille Excel et désactivez le mode création (dans l'onglet "Développeur", désactivez le bouton "Mode création"). Vous pouvez maintenant sélectionner plusieurs options dans le ListBox. Les options sélectionnées apparaîtront dans la cellule que vous avez spécifiée dans le code VBA (par exemple, D1).
Description de l'image : Capture d'écran montrant un ListBox avec plusieurs options sélectionnées et le résultat affiché dans une cellule Excel.
Conseils et astuces pour optimiser vos listes déroulantes à choix multiple
- Utiliser des noms définis : Au lieu d'utiliser des références de cellules directement dans vos formules ou dans les propriétés du ListBox, utilisez des noms définis. Cela rendra vos formules plus lisibles et plus faciles à maintenir. Par exemple, vous pouvez nommer la plage de cellules contenant votre liste d'options "MaListe".
- Gérer les listes dynamiques : Si votre liste d'options est susceptible de changer, utilisez une formule pour rendre la plage de données dynamique. Par exemple, vous pouvez utiliser la fonction
DECALERpour créer une plage qui s'ajuste automatiquement à la taille de votre liste. - Améliorer l'apparence du ListBox : Vous pouvez personnaliser l'apparence du ListBox en modifiant ses propriétés, telles que la couleur de fond, la police, etc.
- Gestion des erreurs : Pensez à gérer les erreurs potentielles, par exemple si la cellule liée à une case à cocher contient une valeur inattendue.
Erreurs courantes à éviter
- Oublier d'activer l'onglet "Développeur" : C'est une erreur fréquente, surtout pour les débutants. N'oubliez pas d'activer l'onglet "Développeur" dans les options d'Excel.
- Ne pas lier correctement les cases à cocher : Assurez-vous que chaque case à cocher est liée à une cellule différente. Si plusieurs cases à cocher sont liées à la même cellule, le résultat sera incorrect.
- Oublier de désactiver le mode création : Après avoir configuré le ListBox, n'oubliez pas de désactiver le mode création pour pouvoir interagir avec le contrôle.
- Erreurs dans le code VBA : Vérifiez attentivement votre code VBA pour vous assurer qu'il ne contient pas d'erreurs de syntaxe ou de logique.
Conclusion
Les listes déroulantes à choix multiple sont un outil puissant pour simplifier la saisie de données et améliorer la cohérence de vos feuilles de calcul Excel. Que vous choisissiez d'utiliser la fonction TEXTJOIN ou le code VBA, vous pouvez créer des listes déroulantes à choix multiple qui répondent à vos besoins spécifiques. En suivant les conseils et astuces présentés dans cet article, vous serez en mesure de créer des listes déroulantes à choix multiple efficaces et conviviales, vous permettant ainsi de gagner du temps et d'améliorer la qualité de vos données.