Function Ordre(Plage As Range, Cel As Range)
Dim PT As Object, Dico As Object
Set PT = CreateObject("system.collections.arraylist")
Set Dico = CreateObject("Scripting.Dictionary")
For Each C In Plage
If C.Value <> "" Then PT.Add C.Value
Next
PT.Sort
PT.Reverse
For Each elem In PT
If Not Dico.Exists(elem) Then x = x + 1
Dico(elem) = x
Next
Ordre = IIf(Dico.Exists(Cel.Value), Dico(Cel.Value), "")
End Function