Bonsoir,
Dans ta formule D5, qui contient ceci (le nom de la feuille REF! n'est pas bonne du au problème de liaison)
=SI(B1=1;RECHERCHEV(B3;REF1'!A6:I12;9;0);SI(B1=2;RECHERCHEV(B3;REF1'!A20:I26;9;0);SI(B1=3;RECHERCHEV(B3;REF1'!A34:I40;9;0);SI(B1=4;RECHERCHEV(B3;REF2'!A48:I54;9;0);SI(B1=5;RECHERCHEV(B3;REF2'!A6:I12;9;0);SI(B1=6;RECHERCHEV(B3;REF2'!A20:I25;9;0);SI(B1=7;RECHERCHEV(B3;REF2'!A34:I39;9;0))))))))
En la présentant autrement, sous forme de cascade,
=SI(B1=1;RECHERCHEV(B3;REF1'!A6:I12;9;0);
SI(B1=2;RECHERCHEV(B3;REF1'!A20:I26;9;0);
SI(B1=3;RECHERCHEV(B3;REF1'!A34:I40;9;0);
SI(B1=4;RECHERCHEV(B3;REF1'!A48:I54;9;0);
SI(B1=5;RECHERCHEV(B3;REF2'!A6:I12;9;0);
SI(B1=6;RECHERCHEV(B3;REF2'!A20:I25;9;0);
SI(B1=7;RECHERCHEV(B3;REF2'!A34:I39;9;0)
)
)
)
)
)
)
)
Si tu analyses ta formule, tu as un Si de la cellule B1, puis utiliser la fonction RECHERCHE de la cellule B3 dans une plage qui varie. Pour éviter une certaine répétition, la formule peut être écrite sous cette forme :
=RECHERCHEV(Feuil1!B3;si(B1=1;REF1'!A6:I12;si(B1=2;REF1'!A20:I26............));9;0)
Tu vas me dire je n'ai pas résolu ton problème de 7 SI imbriqués . Exact, mais je t'ai montrer déjà comment simplifier ta formule.
Il y a une fonction qui s'appel CHOISIR (pour faire plaisir à CATHY)
=RECHERCHEV(Feuil1!B3;CHOISIR(B1;REF1'!A6:I12;REF1'!A20:I26............);9;0)
Mais petit bémol, Choisir n'accepte que 29 valeurs (1à29), donc hic... lol
Seule possibilité, tu te créer une liste avec le nom des plages des cellules (sous forme de texte).
Par exemple :
Nom de la feuille : feuillePlage
dans la colonne A
REF1'!A6:I12
REF1'!A20:I26
REF1'!A34:I40
REF1'!A48:I54
REF2'!A6:I12
REF2'!A20:I26
REF2'!A34:I40
REF2'!A48:I54
etc
Tu remplaces dans la cellule D5, la formule par celle-ci
=RECHERCHEV(Feuil1!B3;INDIRECT(INDEX(feuillePlageA:A;B1;1));9;0)
Dans les autres formules, quand tu voudras faire appel à la plage des données, utilise cette partie INDIRECT(INDEX(feuillePlageA:A;B1;1)).
J'espère avoir été clair.
Bonne soirée
@+Jean-Marie