Bonjour
Avec une formule je te supprime toutes tes conditions.
Je m'explique
CodematB est la plage des cellules codemat!B4 à Codemat!B...
CodematA est la plage des cellules codemat!A4 à Codemat!A...
CodematG est la plage des cellules codemat!G4 à Codemat!G...
la fonction =EQUIV(Commande!C10;CodematB;0), renvoi un index de ligne de la plage CodematB.
la fonction =INDEX(CodematA;indexCodematB;1) renvoi la valeur à tester à Commande!C16
si le résultat de la condition
- est vrai, il faut la fonction = INDEX(CodematG;IndexCodematB;1),
- est faux on renvoie H10
La formule avec les fonctions imbriquées.
=SI(Commande!C16=INDEX(CodematA;EQUIV(Commande!C10;CodematB;0);1);INDEX(CodematG;EQUIV(Commande!C10;CodematB;0);1);H10)
Si la valeur cherchée dans la plage CodematB est inconnue la fonction EQUIV() va renvoyée #NA, qui donnera au final la valeur en H10
En espérant avoir résolu ton problème de si, bonne journée
@+Jean-Marie