Résolu: Vba Excel : Nombre aléatoire

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

  1. 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
    1. 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
      1. Contributeur
        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
        1. 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
          1. 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