Bonjour,
Plusieurs observations au sujet de ta formule :
=SI(LIGNES(Cotisations!$1:1)<=SOMMEPROD((Cotisations!$E$5:$E$24=0)*(Cotisations!$F$5:$F$24<>"DCD"));INDEX(Cotisations!C5:C24;PETITE.VALEUR(SI(SOMMEPROD(($E$5:$E$24=0)*($F$5:$F$24<>"DCD"));LIGNE(INDIRECT("1:"&LIGNES(Cotisations!$E$5:$E$24))));LIGNES(Cotisations!$1:1)));"")
1) dans tes conditions ; $E$5:$E$24=0 et $F$5:$F$24<>"DCD" : font appel aux cellules de la feuille retard (le nom de feuille n'est pas précisé : donc ça ne peut pas fonstionner
2) dans tes conditions toujours, le sommeprod est inutile ou du moins il est en double avec le SI : soit tu écris PETITE.VALEUR((SOMMEPROD(($E$5:$E$24=0)*($F$5:$F$24<>"DCD")*ligne(....);k)
soit PETITE.VALEUR(SI(($E$5:$E$24=0)*($F$5:$F$24<>"DCD");ligne(..));k)
Enfin, à titre personnel je ne suis pas à l'aise avec LIGNE(INDIRECT("1:"&LIGNES(....)
Voir fichier en pj avec ma formule : =SIERREUR(INDEX(Cotisations!$C$1:$C$24;PETITE.VALEUR(SI((Cotisations!$E$5:$E$24=0)*(Cotisations!$F$5:$F$24<>"DCD");LIGNE(Cotisations!$E$5:$E$24));NBVAL(Retard!$C$4:C4)));"") qui donne le résultat attendu.
Bien noter que la zone d'index commence à la ligne 1 : INDEX(Cotisations!$C$1:$C$24 puisque ce que le reste de la formule renvoie est un N° de ligne et pas un N° d'index.
Pour éviter les affichage d'erreur j'ai ajouté un sierreur. Si tu utilises vraiment la version 2003 tu peux remettre ton SI(LIGNES($1:1)<=SOMMEPROD((Cotisations!$E$5:$E$24=0);....
Cordialement