Re,
COLONNE(B1:E) va renvoyer une suite des entiers : 2;3;4;5
2 correspond au numéro de colonne B
3 correspond au numéro de colonne C
4 correspond au numéro de colonne D
5 correspond au numéro de colonne E
Alors que dans les arguments de CHOISIR() on veut soit 1, soit 2, 3 ou 4.
MAX() renvoie dans ton cas 5, alors que que le 5 n'existe pas parmi les arguments.
Donc pour corriger il faut un -1 c'est le nombre de colonne avant la colonne B.
Il faut donc verifier cela avec LIGNE() et COLONNE(), fais attention c'est pas LIGNES() et COLONNES(), c'est différents.
=CHOISIR(MAX(SI(B1:E1<>"";COLONNE(B1:E1)-1));5%;30%;40%;100%)
@ valider toujours par Ctrl+Shift+Enter
@ + +