Formule evolutive selon valeur dans une cellule

Bonjour a tous,

J'ai une base de donnée sous forme de tableau avec des entetes de colonne (feuille Database).

Sur une atre feuille (feuille Home), j'ai des liste déroulante qui permettent de selectionner un nom de compagny, un type de produit et une référence. Ces listes déroulante sont complété en cascade via des macro permettant de selectionne rle type de produit selon la compagny selectionnée et la référence selon la compagny ou de façon plus affinée selon la compagny et le type de produit si le sdeux ont été complété.

Les entete de colonne du tableau de la feuille database sont reprises sur une la feuille Home dans un tableau ou je souhaite rapatrier les donnée correspondant a une ref lorsque celle-ci est selectionnée. Ceci est actuellement assurer par une macro. je suis dans une démarche pour essayer d'aller les opération effectuer sur la feuille et après réflexion, je me dis que je pourrais effectuer cette opération de récupération via une formule, ce qui je pense allegerait le code.

Si je prends l'exemple de la case C14, cette formule donnerait :

=SIERREUR(INDEX(Tableau1[Company];EQUIV(Choix_Ref_1;Tableau1[Reference];0);0);"")

Choix_Ref_1 étant le nom de la case C12 qui contient la référence sélectionnée

Tableau1[Company] la colonne du tableau base de donnée ou l'on recherche le nom de la compagny correspondant a la ref sélectionée

Tableau1[Reference] la vcolonne du tableau base de donnée contenant les différentes références. Il n'y a aucun doublon dans cette colonne.

Je souhaiterais savoir s'il est possible de rediger cette formule de tel façon que le contenu des crochet de Tableau1[Company] soit en fait dependant du texte dans la case B14, ce qui permettrait de propager la formule juqu'a la céllule C29. et que la valeur raporté entre C14 et C29 dépende du texte correspondant en B14 à B29.

Je vous remercie par avance

Bastien

image

Bonjour

tu peux le faire en effet avec la fonction INDIRECT

=SIERREUR(INDEX(INDIRECT("Tableau1["&B14&"]");EQUIV(Choix_Ref_1;Tableau1[Reference];0);0);"")

Bonjour,

Merci pour la formule, c'est exactement ça.

Juste pour comprendre, on met entre guillemet le texte fixe et le sign & sert a coller les morceaux. J'ai tout compris?

Bonne journée

Bastien

C'est exactement cela, dans d'autre langages ç'aurait été un +, mais ici en VBA pour concaténer des textes on met l'esperluette &

A noter qu'à l'intérieur des guillemets dans la formule tout est figé. Si tu changes le nom du tableau Tableau1 il ne sera pas répercuté.

Merci :-)

Rechercher des sujets similaires à "formule evolutive valeur"