Comment créer un menu déroulant dynamique ?

Comment créer un menu déroulant dynamique ?
Dernière mise à jour le 27/04/2024
Temps de lecture : 3 minutes

Pour créer un menu déroulant dynamique, il y a trois méthodes

  1. Utiliser la fonction UNIQUE

    Cette technique s'applique avec la version d'Excel 365

  2. 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

  3. 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]))

Donnees sans doublon avec la fonction UNIQUE

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#

Diese pour appeler le resultat dune fonction matricielle

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

  1. Sélectionnez vos données sources
  2. Activez le menu Insertion > Tableau
  3. Important, cochez la case Mon tableau comporte des en-têtes.
  1. Rouvrez le menu Données > Validation de données
  2. 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.

Menu déroulant dynamique
Menu déroulant dynamique

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.

  1. Insérer vos données dans un Tableau
  2. Ouvrez la boite de dialogue Validation de Données
  3. Sélectionnez l'option Liste
  4. 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"
Reference standard meme si elles proviennent dun tableau
  1. Ajouter un nouveau Prénom en dessous du dernier.
  2. 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 😀👍
Extension des references automatiquement grace au 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 😉

Articles liés

14 Comments

  1. 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,

    Reply

    • 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.

      Reply

  2. 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

    Reply

  3. 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

    Reply

    • 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

      Reply

  4. 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

    Reply

    • 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.

      Reply

  5. 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

    Reply

  6. 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

    Reply

  7. 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 :-/

    Reply

  8. 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

    Reply

  9. 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) ?

    Reply

    • Frédéric LE GUEN
      20/11/2020 @ 13:24

      Bonjour,
      Non, ça ce n'est pas possible

      Reply

  10. JM
    30/10/2020 @ 22:41

    Merci ça a fonctionné 🙂

    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

MVP_logo_2017

Comment créer un menu déroulant dynamique ?

Reading time: 3 minutes
Dernière mise à jour le 27/04/2024

Pour créer un menu déroulant dynamique, il y a trois méthodes

  1. Utiliser la fonction UNIQUE

    Cette technique s'applique avec la version d'Excel 365

  2. 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

  3. 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]))

Donnees sans doublon avec la fonction UNIQUE

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#

Diese pour appeler le resultat dune fonction matricielle

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

  1. Sélectionnez vos données sources
  2. Activez le menu Insertion > Tableau
  3. Important, cochez la case Mon tableau comporte des en-têtes.
  1. Rouvrez le menu Données > Validation de données
  2. 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.

Menu déroulant dynamique
Menu déroulant dynamique

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.

  1. Insérer vos données dans un Tableau
  2. Ouvrez la boite de dialogue Validation de Données
  3. Sélectionnez l'option Liste
  4. 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"
Reference standard meme si elles proviennent dun tableau
  1. Ajouter un nouveau Prénom en dessous du dernier.
  2. 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 😀👍
Extension des references automatiquement grace au 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 😉

Articles liés

14 Comments

  1. 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,

    Reply

    • 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.

      Reply

  2. 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

    Reply

  3. 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

    Reply

    • 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

      Reply

  4. 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

    Reply

    • 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.

      Reply

  5. 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

    Reply

  6. 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

    Reply

  7. 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 :-/

    Reply

  8. 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

    Reply

  9. 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) ?

    Reply

    • Frédéric LE GUEN
      20/11/2020 @ 13:24

      Bonjour,
      Non, ça ce n'est pas possible

      Reply

  10. JM
    30/10/2020 @ 22:41

    Merci ça a fonctionné 🙂

    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.