Liste déroulante et recherche

Résolu
Maëlle -  
 Ma3ll3 -
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

  1. Fahora Messages postés 949 Statut Membre 68
     
    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
    1. Ma3ll3
       
      Merci beaucoup pour ton aide Fahora, cela fonctionne à merveille !!! :) :) :)

      Bonne journée a toi !
      0