OVH Cloud OVH Cloud

nbre aléa

3 réponses
Avatar
GL
Bonjour,

En VBA, je veux afficher dans les cellules ("a1:a10") 10 nombres aléatoires
différents de 1 à 10 (1 seul nbre par cellule).
Je bloque pour écrire la partie qui empèche de générer des doublons.
Merci de votre aide.

guy

3 réponses

Avatar
lSteph
Bonjour,

Sub amplalea()
Dim i As Long, mynb As Integer, mytop As Long
mytop = 10
Range(Cells(1, 1), Cells(mytop, 1)).ClearContents
Randomize
For i = 1 To mytop
Do
mynb = WorksheetFunction.Min(Int(Rnd() * mytop) + 1, mytop)

Loop While Not IsEmpty(Cells(mynb, 1))
Cells(mynb, 1) = i
Next
End Sub

'Cordialement.

'lSteph

"GL" a écrit dans le message de news:
451caf01$0$5077$
Bonjour,

En VBA, je veux afficher dans les cellules ("a1:a10") 10 nombres
aléatoires différents de 1 à 10 (1 seul nbre par cellule).
Je bloque pour écrire la partie qui empèche de générer des doublons.
Merci de votre aide.

guy



Avatar
AV
Une autre (rapide sur longue plage), histoire de...

Sub zz_Tirage()
Application.ScreenUpdating = False
With Range("A1: A10")
.Value = "=rand()&""-""&row()"
.Value = .Value
.Sort Key1:=[A1], Order1:=xlAscending
.Replace What:="*-", Replacement:=""
End With
End Sub

AV
Avatar
GL
Merci à tous les 2.
J'ai pas encore tout compris, mais ça marche!
guy

"AV" a écrit dans le message de news:
%
Une autre (rapide sur longue plage), histoire de...

Sub zz_Tirage()
Application.ScreenUpdating = False
With Range("A1: A10")
.Value = "=rand()&""-""&row()"
.Value = .Value
.Sort Key1:=[A1], Order1:=xlAscending
.Replace What:="*-", Replacement:=""
End With
End Sub

AV