re,
Plus facile à comprendre effectivement avec ton dernier fichier.
La solution proposée ne l'est pas pour autant.
J'ai considéré que l'élément clé était le n° d'affaire.
Sur cette base, j'ai construit une solution sur base de formules matricielles :
En F2 (onglet Feuil1), cette formule :
=SI(LIGNE()-1>NB(Feuil2!$F$20:$L$46);"";INDEX(Feuil2!$A$1:$A$46;MOD(PETITE.VALEUR(SI((Feuil2!$F$20:$L$46<>0);(Feuil2!$F$20:$L$46<>0)*COLONNE(Feuil2!$F$20:$L$46)+((Feuil2!$F$20:$L$46<>0)*LIGNE(Feuil2!$F$20:$L$46)/100));LIGNE()-1);1)*100))
Formule matricielle à valider par CTRL + MAJ + ENTREE
Ensuite, en D2 :
=SI($F2="";"";INDEX(Feuil2!$A$1:$L$46;MOD(PETITE.VALEUR(SI((Feuil2!$F$20:$L$46<>0);(Feuil2!$F$20:$L$46<>0)*COLONNE(Feuil2!$F$20:$L$46)+((Feuil2!$F$20:$L$46<>0)*LIGNE(Feuil2!$F$20:$L$46)/100));LIGNE()-1);1)*100;2))
Validation par CTRL + MAJ + ENTREE
En B2 :
=SI($F2="";"";INDEX(Feuil2!$F$18:$L$18;ENT(PETITE.VALEUR(SI((Feuil2!$F$20:$L$46<>0);(Feuil2!$F$20:$L$46<>0)*COLONNE(Feuil2!$F$20:$L$46)+((Feuil2!$F$20:$L$46<>0)*LIGNE(Feuil2!$F$20:$L$46)/100));LIGNE()-1))-5)+0,5)
Validation par CTRL + MAJ + ENTREE
en G2 :
=SI($F2="";"";INDEX(Feuil2!$A$1:$L$46;MOD(PETITE.VALEUR(SI((Feuil2!$F$20:$L$46<>0);(Feuil2!$F$20:$L$46<>0)*COLONNE(Feuil2!$F$20:$L$46)+((Feuil2!$F$20:$L$46<>0)*LIGNE(Feuil2!$F$20:$L$46)/100));LIGNE()-1);1)*100;ENT(PETITE.VALEUR(SI((Feuil2!$F$20:$L$46<>0);(Feuil2!$F$20:$L$46<>0)*COLONNE(Feuil2!$F$20:$L$46)+((Feuil2!$F$20:$L$46<>0)*LIGNE(Feuil2!$F$20:$L$46)/100));LIGNE()-1))))
Validation par CTRL + MAJ + ENTREE
Je joins le fichier pour plus de simplicité :
https://www.excel-pratique.com/~files/doc2/kris.zip
Je te laisse tester
Il est sans doute possible de simplifier. Avis aux formulistes qui rodent dans la région
A te (re)lire
@+