Sub test()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim coll1 As Collection
Dim coll2 As Collection
Set coll1 = New Collection
Set coll2 = New Collection
While coll1.Count < 1000
While coll2.Count < 12
Randomize
x = Int((20 * Rnd) + 1)
On Error Resume Next
coll2.Add x, CStr(x)
On Error GoTo 0
Wend
For n = 1 To coll2.Count
Z = Z & coll2(n) & ";"
Next n
Z = Left(Z, Len(Z) - 1)
On Error Resume Next
coll1.Add Z, CStr(Z)
On Error GoTo 0
Z = ""
For p = 1 To coll2.Count
coll2.Remove 1
Next
Wend
For n = 1 To coll1.Count
For m = LBound(Split(coll1(n), ";")) To UBound(Split(coll1(n), ";"))
Cells(n, 27 + m) = Split(coll1(n), ";")(m)
Next m
Next n
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Sub test2()
Columns("AA:AL").ClearContents
ligne = 1
Dim coll As Collection
Set coll = New Collection
While ligne < 1001
Calculate
For n = 13 To 24
x = Cells(1, n)
On Error Resume Next
coll.Add x, CStr(x)
On Error GoTo 0
Next n
For n = 1 To coll.Count
Cells(ligne, 26 + n) = coll(n)
Next n
For n = 1 To coll.Count
coll.Remove 1
Next n
ligne = ligne + 1
Wend
End Sub