Function Evaluation(plageValeurs As Range, plageEvaluations As Range, Optional xErr)
Dim t0, tref, lignes, i&, n&, j&, x
Evaluation = IIf(IsMissing(xErr), CVErr(xlErrNA), xErr)
t0 = plageValeurs: tref = plageEvaluations: n = UBound(tref)
For i = 1 To UBound(tref): lignes = lignes & "/" & i & "/": Next
For j = 1 To UBound(tref, 2) - 1
For Each x In Split(lignes, "/")
If x <> "" Then
If tref(CLng(x), j) <> t0(1, j) Then
lignes = Replace(lignes, "/" & x & "/", "")
If lignes = "" Then Exit Function
End If
End If
Next x
Next j
If lignes <> "" Then
n = Split(lignes, "/")(1)
Evaluation = tref(n, UBound(tref, 2))
End If
End Function