Function Classement(R As Range, CHX As Range, critere$, sens$)
'sens = "c" => croissant, sens = "d" => décroissant
Dim i%, x$, n%, a(), b(), c()
For i = 1 To R.Count
x = Replace(R(i).Text, ",", ".")
If Val(x) > 0 Then
If Evaluate(x & critere) Then
n = n + 1
ReDim Preserve a(1 To n): a(n) = Val(x) + IIf(sens = "c", i, -i) / "1E9"
ReDim Preserve b(1 To n): b(n) = CHX(i)
End If
End If
Next
If n = 0 Then Exit Function
If sens = "c" Then Call tri_croissant(a, b, 1, n) Else Call tri_decroissant(a, b, 1, n)
ReDim c(1 To 4, 1 To 2) '4 lignes à alimenter
For i = 1 To UBound(c)
If i <= n Then c(i, 1) = a(i): c(i, 2) = b(i)
Next
Classement = c 'matrice
End Function