Option Explicit
Dim Réexécuter As Boolean
Sub ReCalc()
Dim TV() As Variant, L As Long
If Worksheets(1).Cells(1, 11).Value > 0 Then
Worksheets(1).Cells(1, 11).Value = Worksheets(1).Cells(1, 11).Value - 1
Else
Worksheets(1).Cells(1, 11).Value = Worksheets(2).Cells(1, 5).Value
TV = Worksheets(2).[B4:E55].Value
Randomize
For L = 1 To 52: TV(L, 4) = TV(L, 3): TV(L, 3) = Rnd * (TV(L, 2) - TV(L, 1)) + TV(L, 1): Next L
Worksheets(2).[B4:E55].Value = TV
End If
If Réexécuter Then Application.OnTime Now + TimeValue("00:00:01"), "ReCalc" ' temps à ajuster
End Sub
Sub Bouton()
Réexécuter = Not Réexécuter
If Réexécuter Then ReCalc
End Sub