Une liste déroulante Excel est très pratique pour éviter les fautes de saisie et standardiser les informations dans un tableau. Au lieu de taper manuellement « En attente », « en cours » ou « terminé », il suffit de sélectionner une valeur dans un menu.
Mais que faire lorsque les choix évoluent ? Ajouter une nouvelle catégorie, supprimer une option obsolète, modifier le message d’erreur ou changer la plage utilisée comme source : toutes ces opérations sont possibles en quelques clics.
Dans ce tutoriel, nous allons voir comment modifier une liste déroulante sur Excel, selon la manière dont elle a été créée. Car oui, toutes les listes déroulantes ne fonctionnent pas exactement de la même façon.
Identifier la source de la liste déroulante
Avant de modifier une liste, il faut savoir d’où proviennent ses choix. Excel propose principalement trois méthodes :
- les valeurs sont saisies directement dans la validation des données ;
- les valeurs proviennent d’une plage de cellules ;
- les valeurs sont stockées dans un tableau Excel ou une plage nommée.
Cette distinction est importante. Si la liste contient directement les mots « Oui,Non,Peut-être », vous ne la modifierez pas comme une liste alimentée par une colonne de cellules.
Pour vérifier la configuration, sélectionnez une cellule contenant la liste déroulante, puis ouvrez l’onglet Données du ruban. Cliquez ensuite sur Validation des données, puis à nouveau sur Validation des données dans le menu.
Dans la fenêtre qui s’affiche, restez sur l’onglet Options. Le champ Autoriser doit normalement être réglé sur Liste. Le champ Source vous indique alors l’origine des choix.
Modifier une liste contenant des valeurs saisies manuellement
La méthode la plus simple consiste à saisir les choix directement dans le champ Source. Imaginons que votre liste contienne actuellement les valeurs suivantes :
À faire,En cours,Terminé
Vous souhaitez ajouter l’état « Bloqué ». Voici la manipulation :
- sélectionnez une cellule de la liste déroulante ;
- ouvrez l’onglet Données ;
- cliquez sur Validation des données ;
- dans le champ Source, ajoutez ,Bloqué à la fin de la liste ;
- cliquez sur OK.
La source devient alors :
À faire,En cours,Terminé,Bloqué
Selon les paramètres régionaux de votre version d’Excel, le séparateur peut varier. Dans la plupart des versions françaises, les éléments sont séparés par un point-virgule ou une virgule selon le contexte et la version utilisée. Si Excel refuse votre saisie, essayez l’autre séparateur.
Cette méthode convient parfaitement pour une petite liste qui change rarement. En revanche, si vous ajoutez régulièrement des éléments, elle devient vite peu pratique. Devoir ouvrir la validation des données chaque fois qu’une catégorie apparaît est une tâche répétitive… et Excel est justement là pour nous en épargner quelques-unes.
Modifier une liste basée sur une plage de cellules
Une méthode plus souple consiste à stocker les choix dans une colonne dédiée. Par exemple, dans une feuille nommée Paramètres, vous pouvez créer cette liste :
- En attente
- En cours
- Terminé
Supposons que ces valeurs se trouvent dans la plage Paramètres!A2:A4. La liste déroulante utilise alors cette plage comme source.
Pour ajouter une nouvelle valeur, il suffit généralement d’écrire « Bloqué » dans la cellule située juste sous la liste, par exemple en A5. Il faudra ensuite vérifier que la validation des données inclut bien cette nouvelle cellule.
Pour contrôler ou modifier la plage :
- sélectionnez une cellule qui contient la liste déroulante ;
- ouvrez Données > Validation des données ;
- regardez le contenu du champ Source ;
- remplacez par exemple =Paramètres!$A$2:$A$4 par =Paramètres!$A$2:$A$5 ;
- validez avec OK.
Le symbole $ permet de verrouiller les références de cellules. Il évite que la plage se décale lorsque vous copiez la validation vers d’autres cellules.
Utiliser une plage nommée pour rendre la source plus lisible
Une formule comme =Paramètres!$A$2:$A$20 fonctionne, mais elle n’est pas particulièrement parlante. Une plage nommée permet de donner un nom explicite à votre liste, comme ListeStatuts.
Pour créer une plage nommée :
- sélectionnez les cellules contenant les choix ;
- cliquez dans la zone de nom, à gauche de la barre de formule ;
- saisissez un nom, par exemple ListeStatuts ;
- appuyez sur Entrée.
Vous pouvez également passer par l’onglet Formules, puis cliquer sur Gestionnaire de noms et Nouveau.
Dans la validation des données, indiquez ensuite :
=ListeStatuts
La source est désormais plus facile à comprendre et à modifier. Si vous changez la plage associée au nom ListeStatuts, toutes les listes qui l’utilisent peuvent être mises à jour sans modifier leur validation une par une.
Ajouter automatiquement les nouveaux choix avec un tableau Excel
Pour une liste amenée à évoluer, le tableau Excel est souvent la meilleure solution. Il permet d’étendre automatiquement la source lorsque vous ajoutez une nouvelle ligne.
Imaginons que votre liste de choix se trouve dans la colonne Statut. Sélectionnez cette liste, puis utilisez le raccourci Ctrl + T. Cochez l’option indiquant que votre tableau comporte des en-têtes, puis validez.
Donnez éventuellement un nom au tableau dans l’onglet Création de tableau, par exemple tblStatuts.
Il est déconseillé d’utiliser directement une référence structurée comme =tblStatuts[Statut] dans le champ Source de la validation des données, car Excel peut se montrer capricieux selon les versions. La solution la plus fiable consiste à créer une plage nommée qui s’appuie sur le tableau.
Dans le gestionnaire de noms, créez par exemple le nom ListeStatuts avec la référence :
=tblStatuts[Statut]
Dans la validation des données, utilisez ensuite :
=ListeStatuts
À partir de là, si vous ajoutez « Bloqué » dans la ligne située sous le tableau, Excel agrandira automatiquement le tableau et la valeur pourra être proposée dans la liste déroulante.
Modifier plusieurs listes déroulantes en même temps
Vous avez créé une liste déroulante dans une cellule, puis vous l’avez copiée sur toute une colonne ? Bonne nouvelle : si toutes les cellules utilisent la même validation, vous pouvez généralement les modifier en une seule fois.
Sélectionnez la plage concernée, par exemple B2:B500, puis ouvrez Données > Validation des données. Modifiez la source et validez.
La nouvelle configuration sera appliquée à l’ensemble de la sélection.
Pour sélectionner rapidement toutes les cellules possédant une validation, utilisez la commande Atteindre :
- appuyez sur Ctrl + G ou utilisez Rechercher et sélectionner > Atteindre ;
- cliquez sur Cellules… ;
- sélectionnez Validation des données ;
- choisissez Toutes ou Identiques, selon votre besoin.
Cette technique est très utile dans un fichier ancien où les listes ont été appliquées à de nombreuses cellules, parfois sans réelle logique apparente.
Modifier le message affiché lorsque la cellule est sélectionnée
La validation des données ne sert pas uniquement à afficher des choix. Elle peut également afficher une consigne lorsque l’utilisateur sélectionne la cellule.
Dans la fenêtre Validation des données, ouvrez l’onglet Message de saisie. Vous pouvez y renseigner un titre et une indication, par exemple :
- Titre : Choisissez un statut
- Message : Sélectionnez l’état actuel de la tâche dans la liste.
Ce message apparaît à proximité de la cellule et aide les utilisateurs à comprendre ce qu’ils doivent faire. C’est particulièrement utile dans un modèle partagé avec des personnes qui ne connaissent pas forcément la structure du fichier.
Modifier le message d’erreur de la liste
Par défaut, Excel affiche une alerte lorsqu’un utilisateur saisit une valeur qui ne figure pas dans la liste. Cette alerte peut également être personnalisée.
Dans Validation des données, ouvrez l’onglet Alerte d’erreur. Vous pouvez modifier :
- le style de l’alerte ;
- le titre du message ;
- le texte affiché à l’utilisateur.
Le style Arrêt bloque les valeurs qui ne figurent pas dans la liste. Le style Avertissement affiche une alerte, mais permet parfois de poursuivre. Le style Information informe l’utilisateur sans empêcher la saisie.
Pour garantir des données propres, le style Arrêt est généralement le plus adapté. Si vous choisissez une autre option, un utilisateur peut saisir une valeur différente de celles proposées. La liste reste alors visible, mais elle ne joue plus complètement son rôle de garde-fou.
Que faire si la liste déroulante ne se met pas à jour ?
Vous avez ajouté une valeur, mais elle n’apparaît pas dans le menu ? Plusieurs causes sont possibles.
- la plage indiquée dans la source ne contient pas la nouvelle cellule ;
- la nouvelle valeur a été saisie dans une mauvaise colonne ;
- la liste utilise une plage nommée qui pointe vers une ancienne zone ;
- la cellule possède une validation différente des autres cellules ;
- un espace invisible a été ajouté avant ou après le texte ;
- la feuille contenant la source est masquée ou protégée.
Commencez par sélectionner la cellule concernée et vérifiez directement le champ Source. C’est souvent là que se trouve l’explication.
Si la source est une plage, regardez également si la nouvelle valeur se trouve bien entre les deux références. Une source =$A$2:$A$10 n’inclura pas une valeur ajoutée en A11.
Enfin, pensez à vérifier les espaces superflus. « Terminé » et « Terminé » peuvent sembler identiques à l’écran, mais un espace final peut perturber les recherches, les tris et les formules.
Supprimer ou remplacer une liste déroulante
Pour retirer une liste déroulante sans supprimer le contenu de la cellule, sélectionnez la cellule ou la plage concernée, puis ouvrez Données > Validation des données. Cliquez sur Effacer tout, puis validez.
La valeur déjà présente dans la cellule sera conservée, mais le menu déroulant disparaîtra.
Vous pouvez aussi remplacer la liste par une autre. Dans la fenêtre de validation, laissez Autoriser : Liste, puis modifiez simplement la source. Par exemple, remplacez une liste de statuts par une liste de services :
=ListeServices
Cette méthode évite de supprimer puis de recréer la mise en forme ou les autres paramètres associés à la cellule.
Bonnes pratiques pour des listes faciles à maintenir
Une liste déroulante bien conçue vous fera gagner du temps pendant des mois. Voici quelques réflexes utiles :
- stockez les listes de référence dans une feuille dédiée, comme « Paramètres » ;
- évitez de saisir manuellement de longues listes dans le champ Source ;
- utilisez un tableau Excel lorsque les choix sont susceptibles d’évoluer ;
- donnez des noms explicites aux plages nommées ;
- évitez les cellules vides au milieu d’une liste ;
- protégez la feuille contenant les paramètres si les utilisateurs ne doivent pas la modifier ;
- testez la liste après chaque modification, notamment lorsqu’elle est utilisée dans un fichier partagé.
Pour un petit fichier personnel, une liste saisie directement peut suffire. Pour un tableau de suivi utilisé par toute une équipe, préférez une liste stockée dans un tableau Excel et reliée à une plage nommée. La différence paraît minime au départ, mais elle devient très appréciable dès que les catégories commencent à évoluer.
Modifier une liste déroulante avec une macro VBA
Dans certains fichiers, les listes doivent être modifiées automatiquement. Une macro VBA peut alors remplacer ou recréer la validation d’une plage de cellules.
Voici un exemple qui applique une liste contenant trois valeurs à la plage B2:B100 :
Sub ModifierListe()
With Range(« B2:B100 »).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:= »En attente,En cours,Terminé »
.IgnoreBlank = True
.InCellDropdown = True
End With
End Sub
La méthode .Delete supprime d’abord l’ancienne validation. La méthode .Add en crée une nouvelle avec les valeurs indiquées.
Pour une liste plus longue, il est préférable de faire pointer la macro vers une plage ou un nom défini plutôt que d’écrire toutes les valeurs dans le code. Vous évitez ainsi de devoir modifier la macro à chaque changement de catégorie.
Dans la majorité des cas, l’interface Excel suffit. VBA devient intéressant lorsque la liste dépend d’un événement, d’un formulaire ou d’une autre sélection effectuée dans le classeur.
Modifier une liste déroulante dans Excel revient donc à identifier sa source, puis à mettre à jour cette source ou la plage qui la référence. Pour quelques valeurs, le champ Source est rapide. Pour un fichier évolutif, le duo tableau Excel + plage nommée offre une solution plus fiable et plus confortable à maintenir.
