Option Base 1
Sub Rangement()
Dim tablo(1600, 2), i%, j%, L%, C%, N%
Application.ScreenUpdating = False
For i = 1 To 1600 ' Le tableau est rempli en colonne 1 des nombres de 1 à 1600 et en colonne 2 de nombres aléatoires
tablo(i, 1) = i
tablo(i, 2) = Rnd
Next i
For i = 1 To 1600 ' On tri les nombres aléatoires par valeur croissante.
For j = i To 1600 ' Ca revient à mélanger la liste de nombres de 1 à 1600 de façon aléatoire
If tablo(i, 2) > tablo(j, 2) Then
buffer = tablo(i, 1): tablo(i, 1) = tablo(j, 1): tablo(j, 1) = buffer
buffer = tablo(i, 2): tablo(i, 2) = tablo(j, 2): tablo(j, 2) = buffer
End If
Next j
Next i
N = 1 ' On écrit les valeurs dans le tableau
For L = 2 To 41
For C = 2 To 41
Cells(L, C) = tablo(N, 1)
N = N + 1
Next C
Next L
End Sub