Function ListeAl(Optional ByVal Graine) As Variant()
Dim TAl() As Long, P As Long, R As Long, X As Long, L As Long, C As Long
With Application.Caller
ReDim TAl(1 To .Count), TRés(1 To .Rows.Count, 1 To .Columns.Count)
End With
For P = 1 To UBound(TAl): TAl(P) = P: Next P
If IsMissing(Graine) Then Randomize Else Rnd -1: Randomize Graine
For P = UBound(TAl) To 2 Step -1
R = Int(Rnd * P) + 1: X = TAl(R): TAl(R) = TAl(P): TAl(P) = X
Next P
P = 0
For L = 1 To UBound(TRés, 1): For C = 1 To UBound(TRés, 2)
P = P + 1: TRés(L, C) = TAl(P): Next C, L
ListeAl = TRés
End Function