Les listes déroulantes sont un moyen simple et efficace de réduire les erreurs de saisie et d’accélérer la saisie de données dans Excel. Que vous créiez un formulaire, un tableau de suivi ou un inventaire, la validation des données avec une liste est généralement la meilleure option. Ce guide présente la méthode rapide, des techniques pour rendre la liste dynamique et maintenable, ainsi que des solutions avancées pour les listes dépendantes et la sélection multiple.
Méthode rapide : Validation des données (liste simple)
La façon la plus directe consiste à utiliser Données → Validation des données. Sélectionnez la cellule ou la plage cible, ouvrez l’outil Validation des données et choisissez Autoriser = Liste. Dans Source, vous pouvez soit indiquer des valeurs séparées par des points-virgules (ex. Oui;Non;Peut-être), soit référencer une plage (ex. =Feuil1!$A$2:$A$10).
- Sélectionnez la cellule ou la plage où la liste doit apparaître.
- Onglet Données → Validation des données → Autoriser : Liste.
- Dans Source, entrez la plage ou les éléments séparés par ;.
- Décochez éventuellement « Ignorer les cellules vides » selon le besoin et personnalisez le message d’erreur si nécessaire.
Conseils pratiques
- Évitez d’inclure des cellules vides dans la source ; elles affichent une entrée vide.
- Vérifiez l’absence d’espaces superflus ou de caractères invisibles qui empêchent la correspondance.
- Préférez une plage absolue (avec $) si vous copiez la validation vers d’autres cellules.
Rendre la liste dynamique : Tables et noms définis
Pour que la liste s’agrandisse automatiquement quand on ajoute des éléments, convertissez la plage source en Table (Ctrl+T). Les Tables adaptent automatiquement les références structurelles quand des lignes sont insérées ou supprimées.
Créez un nom défini : Formules → Gestionnaire de noms → Nouveau. Par exemple, créez ListeProduits qui référence Table1[Produit]. Puis, dans Validation des données, utilisez =ListeProduits comme Source. Cette méthode est robuste et fonctionne bien dans Excel Desktop et Excel Online.
Alternative avec INDEX (sans DECALER)
La formule DECALER est classique mais volatile ; une alternative plus fiable utilise INDEX pour définir une plage dynamique :
=Feuil1!$A$2:INDEX(Feuil1!$A:$A;NBVAL(Feuil1!$A:$A))
Lorsque la colonne contient des cellules vides intermédiaires, adaptez la logique de NBVAL ou utilisez une colonne auxiliaire pour marquer les éléments valides.
Listes dépendantes (cascade)
Les listes en cascade permettent de filtrer la seconde liste selon le choix fait dans la première. Méthodes courantes :
- Utiliser INDIRECT avec des plages nommées : nommez chaque sous-liste (ex. ProduitsA, ProduitsB) puis dans la validation de la seconde colonne utilisez =INDIRECT(A2).
- Utiliser des formules dynamiques ou Power Query pour créer des plages filtrées (version Excel moderne avec fonctions dynamiques).
Remarque : INDIRECT est pratique mais dépend du texte exact et ne fonctionne que si les noms correspondent exactement aux valeurs de la première liste.
Sélection multiple : VBA et alternatives sans macro
Excel ne propose pas nativement la multi-sélection dans une cellule. Deux approches :
VBA (macro)
Placez le code suivant dans la feuille concernée. Il concatène les choix successifs séparés par un point-virgule :
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ExitHandler If Target.Validation.Type = 3 Then Application.EnableEvents = False Dim oldVal As String, newVal As String newVal = Target.Value Application.Undo oldVal = Target.Value If oldVal = "" Then Target.Value = newVal Else Target.Value = oldVal & "; " & newVal End If End IfExitHandler: Application.EnableEvents = TrueEnd Sub
Inconvénient : macros désactivées sur Excel Online et peut poser des restrictions de sécurité.
Sans macro
Utilisez une colonne auxiliaire où chaque sélection est enregistrée sur une nouvelle ligne, puis concaténez avec TEXTJOIN dans une cellule récapitulative. Cette méthode est compatible avec Excel Online et évite les macros.
Dépannage et compatibilité
Problèmes fréquents :
- Liste vide : vérifiez la source et l’absence d’espaces invisibles.
- Valeurs non visibles : assurez-vous que la feuille source n’est pas masquée ou protégée de façon incompatible.
- DECALER trop lent : remplacez par INDEX ou utilisez une Table pour de meilleures performances.
Compatibilité : la validation par liste fonctionne sur Excel Desktop et Online. Les macros ne fonctionnent pas sur Excel Online. Les Tables et les noms définis sont pris en charge dans les deux environnements, ce qui en fait la solution la plus portable.
Résumé et bonnes pratiques
Pour une solution simple et rapide, utilisez Validation des données avec une plage ou des valeurs. Pour une liste maintenable et dynamique, convertissez la source en Table et utilisez un nom défini. Pour des listes dépendantes, INDIRECT est pratique mais fragile ; privilégiez les références structurées ou des formules dynamiques modernes. Pour la sélection multiple, choisissez entre VBA (puissant mais non pris en charge en ligne) et une approche sans macro avec colonne auxiliaire et TEXTJOIN.
En appliquant ces principes vous augmentez la qualité des données, facilitez les mises à jour et réduisez les erreurs de saisie. Si vous voulez, je peux générer un petit fichier exemple (.xlsx) ou fournir les étapes exactes pour votre version d’Excel et votre cas d’usage (listes produits, lieux, codes, etc.).