Donc, je propose la modification comme suit :
Function RecoupeA(cel As Range) As Long
RecoupeA = Cells(Rows.Count, "A").End(xlUp).Row + 1
For i = cel.Row To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "A") <= cel.Value And Cells(i + 1, "A") >= cel.Value Then
RecoupeA = i - cel.Row
Exit For
End If
Next
End Function
C'est-à-dire que
1- je balaye toute la colonne A jusqu'au bout Cells(Rows.Count, "A").End(xlUp).Row
2- j'initialise la valeur de la fonction à la dernière ligne +1, donc la ligne juste en dessous de la dernière pour éviter la confusion, mais tu peux changer cette valeur Cells(Rows.Count, "A").End(xlUp).Row + 1
=> le 0 devient donc bien significatif