Sub Macro1()
Dim PL As Range 'décalre la plage PL
Dim I As Byte 'déclare la variable I (Incrément)
Dim tmp As Byte 'déclare la variavle TMP (valeur TeMPoraire)
Set PL = Range("A1:E5") 'définit la plage PL
For I = 1 To 5 'boucle de 1 à 5
deb: 'étiquette
Randomize 'lance le générateur de nombres aléatoire
Cells(1, I).Value = Int((50 - 2) * Rnd + 1) 'place dans la cellule un nombre aléatoire entre 1 et 50
'si le nombre d'occurrences de la cellule dans la plage PL est supérieur à 1, relance le générateur via l'étiquette "deb"
If Application.WorksheetFunction.CountIf(PL, Cells(1, I).Value) > 1 Then GoTo deb
Next I 'prochain valeur de la boucle
'tri des valeurs
For I = 1 To 5
For J = 1 To 5
If Cells(1, I) < Cells(1, J) Then tmp = Cells(1, J): Cells(1, J) = Cells(1, I): Cells(1, I) = tmp
Next J
Next I
End Sub