Résolu: Vba Excel : Nombre aléatoire

hooli -  
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Après pas mal de recherches, je ne trouve pas la réponse à ma question.
Comment faire pour générer un nombre aléatoire dans VBA excel?

J'ai vu des milliers d'exemple avec Randomize, RDN.. Mais ça ne correspond pas.

Je dois généré un nombre entre 1 et 999 dans la case active.

Merci de votre aide!

5 réponses

Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Salut,

Si tu tiens vraiment au VBA colle ce code dans un module et associe le à un bouton ou dans les propriétés d'un commandButton

Sub test()
Dim MyValue
Randomize ' Initialise le générateur de nombres aléatoires.
' Renvoie une valeur aléatoire comprise entre 1 et 6.
[B2] = Int((999 * Rnd) + 1)
End Sub
4
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Re,

Sur le forum, on aide pas aux cours, les aides sont ponctuelles.

Enfin, écris ton code simplement

Sub ttt()
Randomize
RandomNumber = Int((999 * Rnd) + 1)
ActiveCell = RandomNumber
End Sub

ou encore plus simple tu remplace ActiveCell par Range("A1")= si A1 doit être renseigné ou encore plus simple [A1]=

Sub test()
Randomize
ActiveCell = Int((999 * Rnd) + 1)
End Sub

pourquoi as tu mis
ActiveCell.Range("A1").Value = RandomNumber
ou c'est la cellule active qui est concerné
ou la cellule A1

ici 999 - 1 + 1 si tu fais -1+1 ton code s'annule ou c'est plus 1 ou moins1
ici Rdn c'est Rnd
2
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

il n'y a pas forcément besoin de VBA pour générer un nombre aléatoire entre 1 et 999, il suffit d'écrire dans la case =ALEA.ENTRE.BORNES(1;999).

Par contre, à chaque fois que vous modifierez une case, le chiffre sera également modifié.

Cordialement.
0
hooli Messages postés 97 Statut Membre 7
 
Merci de vos réponse.
Oui je tiens au VBA car j'ai des cours là-dessus.

J'ai un peu avancé depuis la mise de mon poste et j'en suis ici:

Randomize
RandomNumber = Int((999 - 1 + 1) * Rdn + 1)
ActiveCell.Range("A1").Value = RandomNumber


Il marche, mais il me met "1" tout le temps, il va pas chercher un autre nombre.
Avez vous une solution?

Merci d'avance

p.s. Merci Mike-31, je vais tester ce que tu m'a dit.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hooli Messages postés 97 Statut Membre 7
 
Alors j'ai testé ce que tu m'a dis Mike-31 est c'est tout bon!
Reste juste à voir pour que le nombre soit dans la cellule active mais ça devrait être bon.


Merci pour votre aide ;-)
0