Liste déroulante sous condition

Bonjour Toutes et tous,

Je dispose d'un tableau de formulation ou j'indique les ingrédients (B8-B22) et les % (C8-C22). Dans la colonne Statut, je fais apparaitre le statut si jamais il s'agit d'un additif (D8:D22) et je souhaiterais pouvoir sélectionner le type d'additif dont il s'agit dans la colonne E8-E22 dans le cas ou le statut est un additif.

image

Pour cela, j'ai pensé passer par des listes déroulantes soumises à validation du statut additif dans la colonne précédente.

J'ai créé un tableau (=Tableau12) dans une feuille séparée appelée "Data" ou j'ai listé les possibles catégories d'additifs qui seront a proposer dans la liste déroulante. j'ai appelé cette liste "Additifs" et elle fait référence à "Tableau12[Additif]"

Pour ce qui est des listes déroulantes, j'ai essayé de suivre les instrustructions données sur un site (désolé je peux pas encore mettre de lien vers le site).

image

J'ai sélectionné E8:E22 suis allé dans Validation des données/Validation des données, dans autorisé, j'ai sélectionné liste et dans source, j'ai mis la formule suivante =SI([@Status]="Additif";Additifs;)

Mais cela ne fonctionne pas, car j'ai un message d'erreur sur la formule

image

Je vous joins mon fichier

Je ne suis pas fixé sur le fait d'utiliser une formule dans validation de données ou bien autre chose comme du VBA si c'est plus simple.

Je vous remercie par avance pour votre aide

Bastien

Salut, Je ne comprends pas trop pourquoi cela ne marche pas étant donné le tuto.

Une autre solution serait de mettre dans la validation des données == =INDIRECT($D8&"s")

Du coup, s'il y a "Additif" en $D8, dans la cellule E8, il y aura comme liste déroulante les valeurs du tableau "Additifs".

Si la cellule $D8 est vide, il n'y aura rien dans le menu déroulant.

Tu peux un peu simplifier la formule, si en $D8, tu mets directement "Additifs" au lieu de "Additif", ou bien en renommant la liste "Additifs" en "Additif". A ce moemnt là, tu peux te passer de la partie &"s" dans la formule.

Hello

Merci pour ta réponse

Je crois que je ne peux pas utiliser la fonction Indirect car en fait le statut Additif est obtenu via une recherche dans une autre base de donnée :-(

Salut,

J'ai mis la formule dans ton fichier et cela fonctionne.

Je pense que tu devrais essayer.

Bonjour,

Je n'ai pas de certitude absolue mais peut-être en essayant :

=SI([@Status]="Additif";INDIRECT("Additifs");"")

Cdlt,

Merci a tous pour votre aide

Je crois que j'ai compris et je pense que c'est ce que tu voulais dire avec Graveling.

Pour le test logique, il semblerait que mon Excel refuse

[@Status]="Additif"

En le remplaçant par $D8=Data!$AB$2 avec Data!$AB$2=Additif, ça passe

Il y a ici un mysthère que je ne me m'explique pas ...

Bonjour,

Oui, dans la formule de validation, il de comprend pas que c'est une colonne du présent tableau, il faut expliciter le nom du tableau :

=SI(INDIRECT("NomTableau[@Status]")="Additif";...)

Mais, il y a quand même des chances que ça ne fonctionne toujours pas, alors il faudra passer par la référence.

Cdlt,

Oui en effet ça pose toujours probleme même avec cette précision.

Je laisse comme ça, ça marche :-)

Encore merci a tous

Rechercher des sujets similaires à "liste deroulante condition"