Public Function essai(toto As Range) As Range
Application.Volatile
'
' test Macro
Dim i As Integer
Dim j As Integer
i = toto.Row
j = toto.Column
Do While Cells(i, j - 3).Value <= 0
i = i + 1
Loop 'descend jusqu'à trouver une cellule non vide
Do While Cells(i, j - 3).Value > 0
i = i + 1
Loop 'descend jusqu'à retomber sur une cellule vide
Set essai = Range("i" & j)
End Function
Sub test()
Range("j1") = essai(Range("i3")).Value
End Sub