générer des nombres aleatoires à l'exclusion de certains
2 réponses
AB
Bonjour à tous,
Je cherche à générer des nombres aléatoires entiers compris entre a et b
dans 3 cellules, mais je veux qu'ils soient tous les 3 différents.
Une idée ?
AB
Do If Nbre1 <> Nbre2 Then If Nbre2 <> Nbre3 Then If Nbre3 <> Nbre1 Then ActiveSheet.Cells(1, 1).Select Selection.Value = Nbre1 ActiveSheet.Cells(1, 2).Select Selection.Value = Nbre2 ActiveSheet.Cells(1, 3).Select Selection.Value = Nbre3 Exit Do Else Nbre1 = Int((3 * Rnd) + 1) Nbre2 = Int((3 * Rnd) + 1) Nbre3 = Int((3 * Rnd) + 1) End If Else Nbre1 = Int((3 * Rnd) + 1) Nbre2 = Int((3 * Rnd) + 1) Nbre3 = Int((3 * Rnd) + 1) End If Else Nbre1 = Int((3 * Rnd) + 1) Nbre2 = Int((3 * Rnd) + 1) Nbre3 = Int((3 * Rnd) + 1) End If
Loop
End Sub
Bon courage, Cyrille
-----Message d'origine----- Bonjour à tous, Je cherche à générer des nombres aléatoires entiers compris entre a et b
dans 3 cellules, mais je veux qu'ils soient tous les 3 différents.
Une idée ? AB
.
AV
Je cherche à générer des nombres aléatoires entiers compris entre a et b dans 3 cellules, mais je veux qu'ils soient tous les 3 différents.
A adapter : la plage à renseigner et les variables "BornInf" et "BornSup"
Sub Tire3() BornInf = 5: BornSup = 10 For i = 1 To 3 x = Evaluate("int(rand()*(" & BornSup + 1 & "-" & BornInf & ")+" & BornInf & ")") If Evaluate("isnumber(match(" & x & ",A1:A3,0))") = True Then i = i - 1 Else Cells(i, 1) = x Next End Sub
AV
Je cherche à générer des nombres aléatoires entiers compris entre a et b
dans 3 cellules, mais je veux qu'ils soient tous les 3 différents.
A adapter : la plage à renseigner et les variables "BornInf" et "BornSup"
Sub Tire3()
BornInf = 5: BornSup = 10
For i = 1 To 3
x = Evaluate("int(rand()*(" & BornSup + 1 & "-" & BornInf & ")+" & BornInf &
")")
If Evaluate("isnumber(match(" & x & ",A1:A3,0))") = True Then i = i - 1 Else
Cells(i, 1) = x
Next
End Sub
Je cherche à générer des nombres aléatoires entiers compris entre a et b dans 3 cellules, mais je veux qu'ils soient tous les 3 différents.
A adapter : la plage à renseigner et les variables "BornInf" et "BornSup"
Sub Tire3() BornInf = 5: BornSup = 10 For i = 1 To 3 x = Evaluate("int(rand()*(" & BornSup + 1 & "-" & BornInf & ")+" & BornInf & ")") If Evaluate("isnumber(match(" & x & ",A1:A3,0))") = True Then i = i - 1 Else Cells(i, 1) = x Next End Sub