Résolu: Vba Excel : Nombre aléatoire

Fermé
hooli - Modifié par hooli le 12/05/2010 à 14:33
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 - 12 mai 2010 à 14:46
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 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 105
12 mai 2010 à 14:20
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 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 105
12 mai 2010 à 14:46
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 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
12 mai 2010 à 13:30
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 85 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 1 décembre 2011 7
12 mai 2010 à 14:28
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 85 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 1 décembre 2011 7
12 mai 2010 à 14:33
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