Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

générer des nombres aleatoires à l'exclusion de certains

2 réponses
Avatar
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

2 réponses

Avatar
Cyrille
Bonjour,
Essaye ceci :
Sub Alea()

Dim Nbre1
Dim Nbre2
Dim Nbre3
Randomize ' Initialise le générateur de nombres
aléatoires.

' Renvoie une valeur aléatoire comprise entre 1 et 5.
Nbre1 = Int((5 * Rnd) + 1)
Nbre2 = Int((5 * Rnd) + 1)
Nbre3 = Int((5 * Rnd) + 1)

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


.



Avatar
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