Liste déroulante et recherche

Résolu/Fermé
Maëlle - 19 déc. 2016 à 08:57
 Ma3ll3 - 19 déc. 2016 à 10:32
Bonjour à tous,

Je souhaite à l'aide d'une liste déroulante réaliser un récapitulatif d'écart de prix, par article pour chacun de mes fournisseurs.

Pour cela, j'ai réalisé la formule conditionnelle "SI" ci-dessous qui fonctionne mais qui ne me satisfait pas à 100% :

=SI($E$8="A";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");13;FAUX);)&SI($E$8="B";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");20;FAUX);)&SI($E$8="C";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AW");27;FAUX);)&SI($E$8="D";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");34;FAUX);)&SI($E$8="E";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");41;FAUX);)&SI($E$8="F";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");48;FAUX);)

J'ai un total de 6 fournisseurs et je dois effectuer mes recherches V dans 4 onglets différents d'où la mise en place de fonctions indirects.

Je voulais savoir s'il existe une formule plus simple pour réaliser cette tâche ?

Merci d'avance pour votre aide.

1 réponse

Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
Modifié par Fahora le 19/12/2016 à 09:26
Bonjour,

On peut nettement identifier une série dans tes numéros de colonnes.

13/20/27/34/41/48 .

soit 7*2-1 ; 7*3-1 ...

En partant de ce schéma

=RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");13;FAUX) 


peut aussi s'écrire : grace au code ascii des lettres

=CODE(MAJUSCULE(E8))
-64 te donne 1 si E8 = A , 2 si E8 = B ...

d'où
=CODE(MAJUSCULE(E8))-63
te donne 2 pour A , 3 pour B ...
On obtient alors :

=RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");7*(CODE(MAJUSCULE(E8))-63)-1;FAUX) 


Cordialement,
Nos seules limites sont celles que nous nous imposons nous-même.
La politesse et un merci ne tuent pas. Il existe un bouton pour "Résolu" pour confirmer que     votre problème n'en est plus un. Fahora
0
Merci beaucoup pour ton aide Fahora, cela fonctionne à merveille !!! :) :) :)

Bonne journée a toi !
0