Sub Calcul()
Dim tablo, resu(), i&, x, y, col As New Collection, s
With Feuil1 'CodeName
tablo = .[A1].CurrentRegion.Resize(, 2)
ReDim resu(1 To UBound(tablo), 1 To 2)
resu(1, 1) = "Test": resu(1, 2) = "N° ligne"
For i = 2 To UBound(tablo)
x = tablo(i, 1): y = tablo(i, 2)
On Error Resume Next
col.Add y & Chr(1) & i, CStr(x)
If Err Then
s = Split(col(x), Chr(1))
resu(i, 1) = IIf(y > Val(Replace(s(0), ",", ".")), "OK", "NOK")
resu(i, 2) = Val(s(1))
col.Remove x
col.Add y & Chr(1) & i, CStr(x)
End If
Next
'---restitution---
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
.[C1].Resize(UBound(resu), 2) = resu
End With
End Sub