Valeur aléatoire selon variable

Salut le forum,

pour déterminer un nombre aléatoire entre 1 et 6, j'utilise

Dim premier as Integer

Randomize
premier = Int(Rnd * 6)

et ça fonctionne très bien.

Cependant, si je tente de remplacer la valeur 6 par une variable :

Dim nombre_joueurs as Integer
Dim premier as Integer
nombre_joueurs = 6

Randomize
premier = Int(Rnd * nombre_joueurs)

ça ne fonctionne plus.

Pourtant, quand je teste ligne par ligne, la variable nombre_joueurs prend bien la valeur 6 mais premier est toujours à 0.

Pourquoi? Pourquoi? Pourquoi?

Merci pour votre aide.

Salut le forum

Aucun problème avec le code

Mytå

J'ai changé la position du Randomize et mon code fonctionne maintenant.

Bonjour,

Une macro commence par Sub et se termine par End Sub... De plus elle est étroitement dépendante du contexte (c'est à dire de son classeur, du module ou elle se trouve, voire des autres macros...)

Telle que tu le présentes et dans un classeur vide, si on ne fait que rajouter

sub test()

End Sub

cette macro renvoie bien des nombres aléatoires entre 0 et 5

C'est ce que j'ai fait en rajoutant en plus une boucle d'affichage :

Sub test()
Dim nombre_joueurs As Integer
Dim premier As Integer
For i = 1 To 30
  nombre_joueurs = 6
  Randomize
  premier = Int(Rnd * nombre_joueurs)
  Cells(i, 1) = premier
Next
End Sub

... Et le résultat est bien une série de nombre de 0 à 5 !

A+

Bonsoir,

n'oublie pas que Rnd te donne un nombre entre 0 et inférieur à 1...

Donc, pour multiplier par 6, et avoir autre chose que 0, il faut qu'il sorte un nombre supérieur à 0.1666666

et que tu n'auras jamais de 6

salut le forum

Utilise plutôt Randomize (timer)

Si tu veux vraiment une nombre aléatoire

Salut à tous et merci pour vos interventions.

Le Randomize m'a vraiment causé des problèmes mais j'ai découvert qu'avec ces lignes:

nombre_joueurs = 6
Randomize premier
premier = Int(Rnd * nombre_joueurs) + 1

ça fonctionne très bien.

Rechercher des sujets similaires à "valeur aleatoire variable"