Sub SelectionAleatoire()
Dim d As Object, n%, ref$, plage As Range
Randomize
Set d = CreateObject("Scripting.Dictionary")
While d.Count < 500
n = 2 + Int(937 * Rnd) 'nombre entier aléatoire de 2 à 938
If Not d.Exists(n) Then
ref = n & ":" & n 'référence texte
Set plage = Union(IIf(d.Count, plage, Range(ref)), Range(ref))
d.Add n, n
End If
Wend
Application.ScreenUpdating = False 'évite un défilement
plage.Select 'pour montrer
Intersect(plage, Range("A:G")).Copy Sheets(2).Range("A2")
End Sub