Pour créer un menu déroulant dynamique, il y a trois méthodes
- Utiliser la fonction UNIQUE
Cette technique s'applique avec la version d'Excel 365
- Mettre ses données dans un Tableau
Ici, il faut se servir de la fonction INDIRECT pour renvoyer les éléments dans le menu déroulant
- Travaillez avec l'astuce cachée d'un Tableau
Toujours avec les Tableaux, il est possible d'utiliser les références qui vont s'adapter automatiquement.
Créer un menu déroulant dans Excel
Nous avons vu dans cet article comment créer un menu déroulant dans une cellule de feuille de calcul. Seulement, avec la technique traditionnelle, l'ajout d'un nouvel élément dans la source de données n'apparait pas dans le menu déroulant.
Mais il est facile de corriger ce problème, soit en utilisant un Tableau, ou encore en utilisant les fonctions propagées
Méthode la fonction UNIQUE
Grâce aux fonctions d'Excel 365 il est très facile de pouvoir récupérer le contenu d'une colonne et sans les doublons. Tout d'abord, nous allons écrire la fonction UNIQUE.
=UNIQUE(Tableau1[Prénom]))
Seulement, il n'est pas possible d'indiquer directement une formule dans la référence d'une liste d'un menu déroulant. Mais pour rappeler le résultat d'une fonction matricielle, il faut utiliser une référence étendue grâce au symbole #.
=C2#
Si vous n'avez pas Excel 365, il faut utiliser un tableau
Pour rendre dynamique une liste déroulante, une autre solution assez simple consiste à passer par l'outil Tableau et la fonction INDIRECT
- Sélectionnez vos données sources
- Activez le menu Insertion > Tableau
- Important, cochez la case Mon tableau comporte des en-têtes.
- Rouvrez le menu Données > Validation de données
- Changez la source en indiquant la formule suivante
=INDIRECT("Tableau1[Prénom]")
L'utilisation de la fonction INDIRECT est obligatoire car la zone Source, ne peut pas comprendre les références d'un Tableau.
La fonction INDIRECT permet en fait d'interpréter la référence de la colonne du Tableau écrite sous forme de texte comme nous l'avons expliqué dans cet article.
Astuce improbable toujours depuis un Tableau
Cette astuce est incroyable !!!!!!!!!!!!!!! Nul part ailleurs j'ai vu quelqu'un la mentionner dans un article, dans un post ou une vidéo (enfin, si, la mienne). Et pourtant elle est super simple.
- Insérer vos données dans un Tableau
- Ouvrez la boite de dialogue Validation de Données
- Sélectionnez l'option Liste
- Sélectionnez la colonne de votre Tableau (avec la flèche de sélection), mais les références semblent standards. Pas de références de type "Tableau"
- Ajouter un nouveau Prénom en dessous du dernier.
- Et c'est tout. Le nouveau prénom est maintenant dans le menu déroulant. La source de données a été automatiquement mis à jour du fait que nous soyons dans un Tableau 😀👍
En fait, au moment où vous indiquez les références, l'écriture fait penser à des références figées. Or, nous avons fait la sélection depuis un Tableau. C'est pour ça que la propriété des références dynamiques s'appliquent, même si l'écriture des références ne le laisse pas présager.
Si ce n'est toujours pas clair, regardez la vidéo sur YouTube. En moins d'une minute, vous avez l'explication 😉
COLLETTE
25/08/2023 @ 09:43
Bonjour,
J'ai plusieurs colonnes. J'aimerais qu'avec la liste déroulante de codes magasin que j'ai, quand j'en affiche un, toute la ligne - nom, adresse et CP du magasin s'incrémentent automatiquement dans mon formulaire pour éviter de le taper manuellement. Est-ce possible svp ?
Merci par avance pour votre aide.
Cordialement,
Frédéric LE GUEN
25/08/2023 @ 11:11
Bonjour,
Oui, bien sur que c'est faisable. Une fois que vous avez sélectionné votre code, utilisez la fonction RECHERCHEX ou RECHERCHEV pour retourner les données associées à votre code.
Daniel
11/04/2023 @ 20:40
Bonsoir Monsieur
Est-ce qu’il est possible à partir d’une seule et même liste de base de créer deux trajectoires de liste déroulante en cascade. Par exemple, d une liste de sites commerciaux, une liste déroulante en cascade pour les ingénieurs et une autre liste déroulante en cascade pour les assistantes commerciales, chaque liste sur 3 niveaux
Merci et bonne soirée, vous félicitant pour l ergonomie de votre site
pascal palombi
02/03/2023 @ 16:14
bonjour
est t'il possible d'avoir un menu deroulant par exemple
XAUUSD
EURUSD
est en fonction du choix que l'on prend sa applique tel ou tel formule de calcule
Frédéric LE GUEN
02/03/2023 @ 18:58
Oui bien sur, mais selon votre besoin, il y a de nombreuses façon de le construire
DE COURNUAUD Patrick
02/12/2022 @ 19:54
Formule appliquée et essayée en ajoutant un nom manuelemnt; mais boîte de dialogue qui s'ouvre avec :
"Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule"
Comment y remédier ?
Merci
Frédéric LE GUEN
03/12/2022 @ 14:37
Heuuuu, je ne peux absolument pas vous apporter une réponse car il peut y avoir des dizaines de raisons.
Deleurence
27/02/2021 @ 17:23
Bonjour, besoin d'un petit conseil d'expert : j'ai une colonne avec menu déroulant : équipe concernée qui contient 7 noms d'equipes , j'ai une autre colonne a coté avec un menu deroulant egalement et je voudrais y faire apparaître le nom des personnes appartenant à l'équipe sélectionnée...comment je relie les noms des personnes avec le nom des equipes ?? Merci de votre aide
cathy
27/12/2020 @ 22:41
bonjour,
J'ai un tableau avec des articles puis une colonne de prix par rapport à un vendeur et une 3eme colonne de prix par rapport à un autre vendeur soit colonne A articles colonne B prix X colonne C prix Y
Dans ma base de données sur une autre feuille suivant la liste déroulante d'articles j'aimerais que ma cellule de prix se modifie suivant le vendeur soit :
colonne D vendeur X ou Y en liste déroulante
colonne E articles en liste déroulante
Colonne F prix unitaire en fonction du prix et du vendeur.
Est-ce possible de trouver la formule qui correspond ??
=SI(E3="";"";RECHERCHEV(E3;TARIFS!$A$1:$C$18;3;FAUX)*ET(D3=VENDEURS!$A$2;Classeur1.xlsx!PRIX_X;Classeur1.xlsx!PRIX_Y;-1)) ne fonctionne que pour 1 des 2 vendeurs
un petit coup de main svp merci beaucoup
Rahma Ferrara
11/12/2020 @ 15:42
Bonjour,
Lorsque le menu déroulant contient des centaines de lignes,
-> est-il possible de simplifier la saisie en n'ayant un ajustement dynamique des propositions du menu déroulant en fonction des lettres saisies ?
Je ne sais pas si ma question est clair :-/
MGR
25/11/2020 @ 17:54
Bonjour,
J'ai un onglet de ENTREPRISES :
Nom : adresse : ....
Ensuite j'ai un onglet CONTACTS :
Entreprise : nom : prénom
Dans l'onglet OPPORTUNITES j'ai :
Entreprise : nom contact
Je voudrais pouvoir dans ce dernier onglet, lors de la saisie d'une opportunité, après avoir saisie l'entreprise en col A pouvoir avoir une validation des noms de contacts de cette entreprise en fonction de toutes les occurrences de l'entreprise dans l'onglet contact. Si vous pouvez m'aider ? Merci
Benji12
20/11/2020 @ 12:31
Bonjour,
Merci pour vos explications toujours claires !
Dans la continuité des listes déroulantes, est-il possible d'y afficher un choix par défaut (sans passer par du vba) ?
Frédéric LE GUEN
20/11/2020 @ 13:24
Bonjour,
Non, ça ce n'est pas possible
JM
30/10/2020 @ 22:41
Merci ça a fonctionné 🙂