Dim dico As Object 'mémorise la variable
Sub Calcul()
Dim t, ncombi, a, b, c, d, e, n
t = Now
ncombi = Application.Combin(49, 5)
Set dico = CreateObject("Scripting.Dictionary")
For a = 1 To 45
For b = a + 1 To 46
For c = b + 1 To 47
For d = c + 1 To 48
For e = d + 1 To 49
If n Mod 10000 = 0 Then DoEvents: Application.StatusBar = Format(Now - t, "hh:mm:ss") & Format(n / ncombi, " - 0%")
n = n + 1
dico(a & " " & b & " " & c & " " & d & " " & e) = n
Next e, d, c, b, a
Calculate 'recalcule les formules volatiles
End Sub
Function Num(r As Range)
Application.Volatile
Dim x$
For Each r In r
x = x & " " & r
Next
Num = dico(Mid(x, 2))
End Function