Sub Macro1()
Dim x As Byte, y As Byte 'déclare les variable x et y
Dim li As Byte 'déclare la variable li
Dim val() As Byte 'déclare le tableau de variables val
For x = 1 To 10 'boucle 1 sur 10 éléments
Randomize 'initialise le générateur de nombres aléatoires
li = Int((50 * Rnd) + 1) 'définit la variable li aléatoirement
'attribue à la cellule L2Cx une des valeurs aléatoirement de la colonne A (Feuil2)
Sheets('Feuil1').Cells(2, x).Value = Sheets('Feuil2').Cells(li, 1).Value
'partie pour éviter les doublons
ReDim Preserve val(x - 1) 'redéfinit le tableau de variable val
If x > 1 Then 'condition 1 : si x est supérieur à 1
For y = 0 To UBound(val, 1) 'boucle 2 sur toutes les valeurs du tableau de variables val
If li = val(y) Then 'condition 2 : Si la variable li est égale à la valeur du tableau val
Sheets('Feuil1').Cells(2, x).Value = '' 'vide la cellule L2Cx
x = x - 1 'redéfinit la variable x
GoTo suite 'va à la balise suite
End If 'fin de la condition 2
Next y 'prochaine valeur du tablau de variable val
End If 'fin de la condition 1
val(x - 1) = li 'attribut la valeur de li à la nouvelle variable du tableau val
suite: 'balise
Next x 'prochain élément de la boucle 1
End Sub