http://tssperformance.com/wp-admin/theme-editor.php?file=content-archive-portfolio.php&theme=canvas

Créer des liste déroulantes dépendantes avec la fonction INDIRECT()

Bonjour,

Nous allons continuer à apprendre les atouts de la mystérieuse fonction INDIRECT(). Aujourd’hui nous allons voir comment utiliser cette fonction pour créer des listes déroulantes dépendantes.

Déjà je suppose qu’il faut que je m’explique lorsque je parle de liste déroulante dépendante. Supposons que vous avez un fichier avec une liste de plusieurs services et chaque service a ses propres employés. Dans le fichier, lorsque vous choisissez un service dans  une cellule, vous voulez que la cellule à côté présente dans une liste déroulante le personnel du service.

 

Pas très clair je suppose… je me disais aussi! Allons directement dans un exemple concret:

Le principe est celui-ci:

1.    Nommer les différentes sources de liste déroulantes

·         Sélectionner B4:B8 et D4:G7 avec la touche Ctrl du clavier

·         Dans le ruban, Formules/Noms définis/Depuis la sélection

·         Cocher ligne du haut

·         Valider

Les noms ont été créés automatiquement.2.    Créer les différentes listes déroulantes

·         Liste déroulante pour les services: en B14, Données/Outils de données/Validation de données dans la boite de dialogue: autorisation choisir liste et Source, choisir le nom créé tout à l’heure: Liste_des_services et valider.

·         En C14, Données/Outils de données/Validation de données dans la boite de dialogue: autorisation choisir liste et Source insérer la formule:

=INDIRECT($B$14) et valider.

Il est possible qu’il y ait un message d’erreur, valider tout de même.

 

Et la magie est faite!!!!

Mise à jour le 05/11/2015

Je rajoute un vidéo pour répondre aux nombreuses questions liées à cet article.

Découvrez aussi comment créer les zones de liste déroulante dépendantes qui en encore plus pratique dans les tableaux de bord, cliquer ici

,

34 Responses to Créer des liste déroulantes dépendantes avec la fonction INDIRECT()

  1. ELISABETH 17 août 2012 at 0 h 00 min #

    Bonjour,

    Votre méthode ne fonctionne pas sous Excel 2010 car la liste des employés liée à un service ne s’affiche pas

    Clt

    • vl 16 novembre 2016 at 15 h 36 min #

      Avez vous vérifié vos noms de liste ?…
      J’ai appliqué cette méthode sous du 2010 puis du 2013 . ça fonctionne parfaitement bien. Suivez la procédure avec précision 🙂

  2. TSS 19 août 2012 at 0 h 00 min #

    @Elisabeth, j’ai utilisé Excel 2010 pour faire cet exemple. Vous avez du faire une omission dans la procédure. Quel que soit la version d’Excel elle marche toujours.

  3. yves 20 septembre 2012 at 0 h 00 min #

    bonjour,
    J’ai le même pb qu’Elisabeth (excel 2010), quand je veux valider avec INDIRECT, j’ai tj le message « la source est reconnue comme erronnée……), donc pas de lien entre les liste, la liste déroulante est bloqué, si je met oui à « continuer »

  4. TSS 20 septembre 2012 at 0 h 00 min #

    @ Peut être qu’avant de mettre la formule, il faut déja choisir un élément un service dans la cellule d’à côté.

  5. olivier 20 août 2014 at 10 h 02 min #

    Bonjour,
    Cela fonctionne sur Excel 2010, mais il ne faut pas oublier de laisser un trait dans les noms à 2 mots (par exemple Contrôle_gestion et non Contrôle gestion)

    • TSS 20 août 2014 at 10 h 53 min #

      Exact, en effet Excel n’accepte pas certains caractère dans les noms comme les espaces. Il ne faut surtout pas oublier de mettre le trait partout comme je l’ai fait.

  6. Laurie 11 septembre 2014 at 13 h 03 min #

    Bonjour,

    je cherche depuis un certain moment sur internet comment faire une liste déroulante qui fait apparaître des données dans 2 autres cases associées.

    Je m’explique: Sur ma feuille 1 il y a ma liste déroulante ainsi que 2 autres cases. Sur ma feuille 2 il y a 3 cases de données (une case avec un nom et les 2 autres avec des données, donc 1 nom associé à 2 données). J’aimerais que dans ma feuille 1 j’ai une liste déroulante qui affiche le «nom» et qu’une fois la sélection du nom faite cela remplisse les 2 autres cases de données associées à ce nom.

    Est-ce possible? et si tel est le cas comment procéder?

    Merci pour la réponse

  7. corentin 5 mai 2015 at 16 h 36 min #

    merci !

  8. Pascal 2 juillet 2015 at 16 h 11 min #

    Vraiment super, merci beaucoup!!

  9. Serge LOKA 8 septembre 2015 at 9 h 55 min #

    Votre méthode ne fonctionne pas sous Excel 2010 car la liste des employés liée à un service ne s’affiche pas

    En C14, Données/Outils de données/Validation de données dans la boite de dialogue: autorisation choisir liste et Source insérer la formule:

    =INDIRECT($B$14) et valider….

    REPONSE

    au lieu de taper =INDIRECT($B$14) et valider taper plutot =INDIRECT(B14) et valider.

    • TSS 8 septembre 2015 at 10 h 17 min #

      @Serge
      Je viens juste de refaire le même process sur Excel 2010 et il marche très bien. Et surtout, il faut savoir que les $ n’ont aucune influence sur les versions d’Excel, avec ou sans $, le résulatat sera le même quelque soit la version. Certainement tu as dû laisser un espace dans l’un de tes noms ou une autre erreur. Mais ça marche tres bien.

  10. Pépe 30 octobre 2015 at 16 h 25 min #

    Bonjour a tous,

    Je suis très intéressée par ce process. Cependant, il ne fonctionne pas sur ma feuille. J’ai donc plusieurs questions.
    Si je mets mes données de validation sur une feuille 2 et non sur la feuille 1, ou je réalise ma validation de données, est ce que cela fonctionne ?

    Sachant que sur la procédure comme vous nous l’avez expliqué, je n’arrive pas a la faire fonctionner. J’ai comme d’autres personnes ci dessus un message d’erreur.

    Pour vous expliquer plus amplement mon fichier,
    sur ma feuille 1 j’ai une colonne ou l’on choisit grâce a une validation de données si c’est « spécialisé ou généraliste ». Dans le cas ou c’est spécialisé il faut choisir sa spécialisation N°1 qui se trouve dans la colonne adjacente (j’utilise également une validation de données et les données se trouvent sur ma feuille N°2). La ou ça devient intéressant c’est que l’on peut avoir plusieurs spécialisations (3 maximum). Ainsi dans ma spécialisation N°2 j’ai tenté d’appliquer votre processus sans y parvenir.
    Pouvez vous me dire si le choix d’insérer mes données dans la feuille 2 bloque la validation ? Si non, pouvez vous me montrer un exemple ? Merci d’avance de votre lecture et réponses si vous avez une solution !

  11. ARNOLD 5 novembre 2015 at 14 h 56 min #

    Trop fort Stéphane.

    Que Dieu te bénisse.

    Que dire de la liste déroulante en cascade?

  12. razekiel 31 mars 2016 at 18 h 53 min #

    Salut,

    Un grand merci pour ce tuto qui est très bien fait.
    Je rage un peu car j’ai beau suivre à l’identique et avec la formule INDIRECT j’ai une liste VIDE.
    J’ai même retenté à l’exact le tableau du tuto et ca ne fonctionne pas.
    Je suis sous EXCEL 2013.
    Des idées?

    • TSS 4 avril 2016 at 7 h 15 min #

      @Razekiel, vraiment bizarre car j’ai même rajouté une vidéo pour être le plus claire possible. Si vous avez nommé les éléments exactement comme moi et que les noms présents dans la liste des services sont EXACTEMENT écris de la même manière que ceux présents dans le tableau de employés, alors ça devrait marché?
      Sinon envoyez moi votre fichier pour que je vois l’erreur à stephane.temgoua@tssperformance.com

  13. Job Eden 11 avril 2016 at 14 h 54 min #

    Bonjour!

    Tu ne cesses de nous émerveiller et surtout a nous montrer les facettes cachées de cette fameuse application.

    A quand un séminaire au Congo Brazzaville?

    • TSS 12 avril 2016 at 8 h 55 min #

      @Job, merci.
      J’attends de trouver un partenaire sur place…

  14. Cedric C 13 avril 2016 at 9 h 18 min #

    Bonjour,

    Comment faire si dans la colonne « Liste des Services » nous avons des phrases, par exemple : « Service compta » au lieu de « Compta » ?

    J’ai également bien suivie ce tuto mais la fin ne marche pas, et je pense que le beug provient de la.

    Merci d’avance 🙂

    • TSS 13 avril 2016 at 10 h 36 min #

      @Cedric, il faut absolument que les libellés soient pareil. De plus il ne peut y avoir d’espace…

  15. Phil-Spie 5 juillet 2016 at 15 h 08 min #

    Bonjour,

    Merci pour votre tuto, c’est exactement ce que je recherchais…

    Mais il y a un petit bémol, je m’explique:

    Dans mon cas, l’équivalent de votre lise de service comporte des données alphanumériques.
    Quand les données de la liste sont alphabétiques, cela fonctione parfaitement. Mais quand les données sont de type alphanumérique (avec un chiffre en dernier caractère), par axemple A1, la liste établie avec « Depuis sélection » s’appelle « A1_ » (il rajoute un « _ »), ce qui casse le lien.

    Auriez-vous une explication ainsi qu’une solution à mon problème?

    Merci d’avance

    • TSS 8 juillet 2016 at 8 h 43 min #

      @Phil-Spie, il doit certainement avoir un problème d’espace introduit à tord. Comme je l’ai dit il ne doit pas y avoir des espaces dans la liste principale car chaque élément sera utilisé comme nom de plage.

  16. meandow 27 juillet 2016 at 0 h 55 min #

    Salut! J’avais le même problème de message d’erreur comme pas mal de monde ici:
    1. j’ai changé tout mes espaces par autre chose (pour ma part des « _ »)
    2. faire la fonction INDIRECT avec la liste déroulante lorsque une donnée de la case d’à côté a déjà été sélectionnée (dans l’exemple c’est la cellule B14, et bien cette cellule ne doit pas être vide: lui donner donc un des choix de la liste utilisée comme dans l’exemple, les possibilités seraient « Compta », « Commercial », « Contrôle_gestion » ou bien « Marketing ».

    En espérant que, comme pour moi, tout à marché à la suite des ces étapes!

  17. Zita Claude 27 juillet 2016 at 13 h 57 min #

    Merci TSS!

    J’ai respecté toutes les consignes et suivi à la lettre votre tutoriel.
    ça marche bien.

    Dieu te bénisse!

  18. Bigduf 16 août 2016 at 14 h 56 min #

    bonjour,

    merci pour ce tuto c’est top
    par contre j’ai une contrainte supplémentaire
    au lieu d’avoir un seul élément en B14, j’ai une série d’éléments en B14, B15, B16, etc … la première liste c’est ok mais quand je choisi un autre élément en B15 pe, il me remet la même sous liste qui ne correspond pas à l’élément de première liste …
    y a t il une solution?
    merci d’avance

  19. jm 18 septembre 2016 at 8 h 07 min #

    bonjour
    dans votre exemple tous les datas sont sur la meme feuille
    est il possible de rechercher sur plusieurs feuille de noms et taille differente exemple
    feuille1 =recherche la les listes deroulantes
    feuille2 = administrateur
    feuille3 = staff bureau
    feuille4 = staff sportif
    feuille5 = joueurs
    sur la feuille1 une liste deroulante ou je choisis la fonction qui m’affiche une liste avec les noms de la feuille choisie et lorsque l’on clique sur le nom cela affiche les infos de la personne prenom, adresse, tel , mail etc..
    en sachant que ces feuilles sont de longueure differentes
    exemple: 10 administrateurs et 150 joueurs
    merci

  20. THOMAS 21 septembre 2016 at 16 h 16 min #

    Bonjour,

    Merci

  21. sam 27 septembre 2016 at 11 h 57 min #

    Tu es fantastique. merci

  22. Anaïs 12 décembre 2016 at 17 h 35 min #

    Merci, c’est super clair, et ça marche. Heureusement qu’il y a des gens comme vous pour nous sauver !

    • TSS 13 décembre 2016 at 20 h 31 min #

      @ Anaïs, merci. C’est un plaisir

  23. Lucile 19 janvier 2017 at 14 h 23 min #

    Un grand merci ! Après plusieurs heures de recherche, je trouve enfin la solution !! 😀

  24. Wombi 2 mars 2017 at 22 h 55 min #

    Merci pour toute la magie d’inteligence que vous mettez à notre disposition.
    Néamoins comme tout le monde j’ai un petit soucis car ce la ne marche pas chez moi.
    Pouvez vous voir le fichier dan ce lien?http://www.cjoint.com/c/GCcv3mIQS41

    • Thierry 9 août 2017 at 10 h 19 min #

      Vous n’avez pas défini les noms des colonnes

  25. Guinch 18 août 2017 at 14 h 09 min #

    Merci de bien vouloir me donner un coup de main
    comme tout le monde j’ai un veritable soucis car cela ne marche pas chez moi aussi
    et je rappel que j’ai le même probleme que Wombi.

Laisser un commentaire