Comment créer une liste déroulante sans VBA sur Excel
Aujourd’hui, nous allons découvrir comment créer simplement un menu déroulant sur Excel. Ce type de menu permet une saisie rapide de contenu dans une cellule en offrant à l’utilisateur la possibilité de choisir directement des textes ou des chiffres pré-enregistrés avec l’aide de la souris ce qui évite d’avoir à le ressaisir manuellement. De cette manière, le menu déroulant permet également d’exclure tout risque d’erreur de ressaisi des informations. Pour mettre en place ce menu, nous n’allons pas avoir recours à une macro développée en VBA, mais nous allons détourner une fonctionnalité incluse dans le tableur.
Pour suivre cet article dans les meilleures conditions, je vous invite à télécharger le fichier disponible ci-dessous.
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
1. Préparations
Pour illustrer cet article, nous allons créer une liste déroulante qui va permettre à un utilisateur de choisir un pays parmi une liste prédéfinie.
Nous allons donc créer un nouveau classeur ([Ctrl]+[n]), et dans la première feuille de ce dernier, nous allons :
- Dans la première cellule (la cellule A1), nous allons saisir le texte « Pays : »,
- Puis nous allons insérer notre menu déroulant dans la cellule située juste à droite (la cellule B1) :
2. Création de la liste source
Ensuite, nous allons ajouter une nouvelle feuille à notre classeur, en cliquant simplement sur le petit bouton « + » en bas à droit de l’onglet de la feuille de calcul :
Dans cette nouvelle feuille, nous allons saisir les noms de pays (ou tout autre information que nous voudrions faire apparaître dans le menu déroulant) :
Pour appeler directement la liste des pays que nous venons d’insérer, nous allons donner un nom à cette plage de cellules.
Un « nom » permet d’appeler directement les cellules dont il fait référence, sans avoir à se soucier des coordonnées qui leur sont attribuées. Outre le fait de simplifier grandement la saisie des formules, celui-ci permet de donner une dimension dynamique à une plage de cellule.
Pour donner un nom à l’ensemble des cellules qui contient les pays, nous commençons par sélectionner celles-ci, puis nous venons simplement saisir le nom correspondant dans la zone dédiée, située juste à gauche de la barre des formules.
Pour l’exemple, nous allons l’appeler « _listePays » :
Lorsque nous avons saisi le nom à attribuer aux cellules, nous validons ce dernier en appuyant sur la touche [Entrée] du clavier.
Vous noterez au passage que le nom utilisé pour l’exemple commence par un tiret bas « _ ». Cela n’est pas obligatoire, mais il s’agit d’une astuce qui permettra d’appeler rapidement l’ensemble des noms crées dans le classeur en saisissant ce tiret dans une formule :
L’exemple ici n’est pas très parlant, mais imaginez que vous ayez créé des dizaines de noms, il sera plus de les retrouver ainsi, sans qu’ils ne soient mélangés avec l’ensemble des fonctions d’Excel. Voici ce que donnerait le même exemple, en saisissant uniquement la lettre « l » :
3. Création du menu déroulant
De retour sur la première feuille du classeur, nous allons maintenant pouvoir insérer la liste des pays dans le menu déroulant de la cellule B1 :
- Pour commencer, nous sélectionnons la cellule B1 :
- Ensuite, dans l’onglet Données du menu Ruban, nous sélectionnons l’option Validation de données :
- Une fenêtre apparaît alors :
- Dans le menu Autoriser, nous choisissons l’option « Liste »,
- Dans le champ Source, nous saisissons « =_listePays » (le signe égal suivi du nom de la plage des données dans laquelle se trouve les valeurs qui nous souhaitons inclure dans le menu déroulant) :
- Enfin, nous validons la création du menu déroulant par un appui sur la touche [OK] de la fenêtre Validation des données
À présent, lorsque sélection la cellule contenant le menu déroulant, un nouveau bouton apparaît :
Un appui sur ce dernier permet d’afficher le menu déroulant !
Attention, lorsque l’on essaie de saisir un nom de pays qui ne fait pas parti de la liste préenregistrée, alors Excel nous affiche un message d’erreur :
Ce message nous informe en effet que la saisie ne fait pas parti des données insérées dans la règle de validation.
Très pratique, cette option permet de se prémunir de toute erreur de saisie. En revanche, il peut parfois être utile de pouvoir laisser la possibilité de rentrer de nouveaux choix, lorsque l’on considère par exemple que la liste n’est qu’une représentation de certaines possibilités, mais que celle-ci n’en est pas pour autant exhaustive.
Pour ne pas afficher ce message bloquant, il faut se rendre à nouveau dans la fenêtre de Validation des données (après avoir validée la cellule B1), puis choisir la page Alerte d’erreur et décocher l’option « Quand des données non valides sont tapées » :
Après avoir validé le réglage à l’aide du bouton [OK], il est maintenant possible de saisir des données en dehors de la liste prédéfinie :
4. Ajouter des entrées dans la liste
Nous venons à l’instant de voir comment saisir une donnée sans que celle-ci ne soit au préalable dans la liste de données du menu déroulant. En revanche, ce n’est pas pour autant que cette donnée a été ajouté à la liste :
Pour ajouter de nouvelles entrées, il est en effet nécessaire de modifier la liste source, soit en saisissant la nouvelle entrée à la suite de la liste, puis en modifiant les coordonnées de la plage de cellules dans les réglages du nom, soit en l’insérant à l’intérieur de la liste. C’est cette seconde option que nous allons détailler ci-après, en raison de sa plus grande simplicité :
- Rendons-nous dans la seconde feuille de calcul du classeur :
- Puis nous allons sélectionner la dernière entité de la liste :
- Ensuite, nous sélectionnons la bordure de cette cellule, afin de la décaler vers le bas (de deux cases, en cellule A7) pour ajouter deux entrées :
- Il suffit à présent de saisir les nouvelles entrées dans l’espace dégagé :
Et voilà, les nouvelles entrées sont maintenant incluses dans le menu déroulant :
Notez qu’il est possible de trier les données par ordre alphabétiques si besoin :