Sub test()
Dim n, i, Nbre As Single
Dim Txt, Lettre As String
Dim Tablo() As String
Dim Debut As Single
Rem top chrono
Debut = Timer
Rem initialise le tableau
ReDim Tablo(0)
Rem cherche 10 000 codes sans doublons
Do While n < 10000
' boulègue
Randomize
' nombre aléatoire entre 1 et 17 000 000 inclus
Nbre = Int((17000000 * Rnd) + 1)
' lettre aléatoire entre A et Z inclus
Lettre = Chr((26 * Rnd) + 65) '65 à 90
' code aléatoire : nombre + lettre - formaté pour une meilleure lisibilité
Txt = Format(Nbre, "00,000,000") & " " & Lettre
' vérifie que le code n'existe pas déjà
For i = 0 To UBound(Tablo())
If Tablo(i) = Txt Then
' ne sotcke pas le code s'il existe déjà dans le tableau
GoTo ignore
End If
Next
' stocke le code dans le tableau s'il n'y est pas déjà
n = n + 1
ReDim Preserve Tablo(n)
Tablo(n) = Txt
ignore:
Loop
Rem Recopie le tableau dans la colonne "A" de la feuille active
For i = 1 To UBound(Tablo())
Cells(i, 1) = Tablo(i)
Next
Rem Trie la colonne "A" en ascendant
Columns("A:A").Sort _
Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Rem Message indiquant le délai de traitement
MsgBox "Traité en " & Timer - Debut & " seconde(s)", 64, "Bizutage"
End Sub