Option Explicit
Private TAléat() As Long, Posit As Long
Sub TIRAGE()
Dim P As Long, N As Long, A As Long, J As Long
On Error Resume Next
Posit = Posit Mod UBound(TAléat) + 1
If Err Then Posit = 1
On Error GoTo 0
If Posit = 1 Then
ReDim TAléat(1 To Feuil1.[A500].End(xlUp).Row - 1):
For P = 1 To UBound(TAléat): TAléat(P) = P: Next P
Randomize
For P = UBound(TAléat) To 2 Step -1
A = Int(Rnd * P) + 1: J = TAléat(A): TAléat(A) = TAléat(P): TAléat(P) = J
Next P: End If
Feuil1.[I10:N10].Value = Feuil1.[A1:G1].Offset(TAléat(Posit)).Value
End Sub