Function MAXPOSITIF&(colonne As Range)
Dim t, i&
t = colonne.Resize(Application.Match(9 ^ 9, colonne))
t(1, 1) = -(Val(t(1, 1)) > 0)
For i = 2 To UBound(t)
t(i, 1) = -(Val(t(i, 1)) > 0) * (Val(t(i - 1, 1)) + 1)
Next
MAXPOSITIF = Application.Max(t)
End Function
Function MAXNEGATIF&(colonne As Range)
Dim t, i&
t = colonne.Resize(Application.Match(9 ^ 9, colonne))
t(1, 1) = -(Val(t(1, 1)) < 0)
For i = 2 To UBound(t)
t(i, 1) = -(Val(t(i, 1)) < 0) * (Val(t(i - 1, 1)) + 1)
Next
MAXNEGATIF = Application.Max(t)
End Function