Nombre aléatoire entre -16 et 82
Steven Daniel
-
luckydu43 Messages postés 4497 Date d'inscription Statut Membre Dernière intervention -
luckydu43 Messages postés 4497 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerai avoir la syntaxe pour générer des nombre aléatoire compris entre -16 et 82
comment faire
j'aimerai avoir la syntaxe pour générer des nombre aléatoire compris entre -16 et 82
comment faire
3 réponses
-
générer un entre -10 et 10,
Sub rando() 'nom de ma procedure
Dim r As Double, r2 As Double
' je génere d'abord une valeur que j'arrondi( resultat : 0 ou 1)
r2 = Round(Rnd())
en fonction de r2, je me branche sur l'une des plages
If (r2 = 0) Then
r = (-10 * Rnd) ' nombre entre -10 et 0
Else
r = (10 * Rnd) ' nombre entre 0 et 10
End If
' Je fait une troncature sur r
r2 = Left(r, 8)
MsgBox "tronquée est " & r2 & " r = " & r
End Sub-
J'aurais donc fait :
Sub rando() 'nom de ma procedure Dim r As Double ' je génère d'abord une valeur que j'arrondis( résultat : entre 0 et 100, décimaux compris) r = Round(Rnd() * 100) 'A ce stade, r2 ne contient que des nombres entiers de 0 à 100 ' (et encore, c'est à voir... Peut-être que 0 et/ou 100 ne sont pas compris.) If (r >= 99) Then r = r - 2 End If r = r - 16 MsgBox "tronquée est " & r End Sub
A voir si ça marche...
P.S. : n'oublie jamais les balises de code...
-
-
Bonjour à tous
Pour créer un entier aléatoire de min à max compris
a=min + Int((max - min + 1) * Rnd)
Cdlmnt -
Bonjour !
Je ne sais pas, je ne connais pas le VBA. Mais vous pouvez décomposer le traitement ^^
1.
Générer un nombre aléatoire entre 0 et 100
2.
Retirer 2 (on a donc un nombre entre -2 et 98)
Recommencer si nombre négatif (on a un nombre entre 0 et 98)
2 bis.
Si nombre supérieur ou égal à 99, retirer 2 ou recommencer la génération
3.
Retirer 16 (on a donc un nombre entre -16 et 82)
Il y a sûrement plus propre ;-)
Bonne journée !
Luc
Les 3 plus grands mensonges du dev : 1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...