Comment générer des nombres aléatoires dans VBA ?

Dans VBA, vous pouvez utiliser différentes manières pour générer un nombre aléatoire dans Excel, et dans cet article, nous les examinerons toutes une par une.

Fonction RND

Pour générer un nombre aléatoire, en VBA, il existe une fonction appelée RND . Cette fonction signifie aléatoire et lorsque vous utilisez cette fonction dans le code, elle renvoie un nombre aléatoire entre 0 et 1. Dans RND, vous n’avez pas besoin de spécifier d’argument.

Range("A1") = Rnd()

Le code ci-dessus l’utilise pour obtenir un nombre aléatoire dans l’A1 et il a renvoyé 0,705547521.

générer un nombre aléatoire dans vba

Mais lorsque vous l’utilisez pour une plage entière, il renvoie le même nombre aléatoire dans toute la plage et cela le rend nul pour être utilisé pour générer des nombres aléatoires plus d’une fois.

renvoie-le-même-nombre-aléatoire

Maintenant, ici, cela n’a pas de sens de l’utiliser, n’est-ce pas ? Mais il existe une solution que vous pouvez utiliser, FOR NEXT LOOP .

utiliser pour la prochaine boucle

Dans le code ci-dessus, vous avez une boucle qui parcourt 10 cellules (une par une) à partir de la cellule sélectionnée et ajoute un nombre aléatoire.

Voici le code complet :

Sub vba_random_number()
Dim i As Long
i = 10
For i = 1 To i
    ActiveCell.Value = Rnd()
    ActiveCell.Offset(1, 0).Select
Next i
End Sub

Nombre aléatoire entre deux nombres

Si vous souhaitez générer un nombre aléatoire entre deux nombres définis, dans ce cas, vous devez écrire du code en utilisant deux fonctions VBA ( RND + INT ). Le code de cette formule serait comme ci-dessous.

nombre-aléatoire-entre-deux-nombres
Sub vba_random_number()
Dim myRnd As Integer
myRnd = Int(2 + Rnd * (45 - 10 + 1))
Range("A1") = myRnd
End Sub

Lorsque vous exécutez cette macro , RND utilise le nombre maximum et le nombre minimum que vous avez définis pour générer le nombre aléatoire et INT en supprime la décimale.

rnd-use-the-max-and-min-number

Utilisation des fonctions de feuille de calcul dans un code VBA pour générer un nombre aléatoire

Dans VBA, vous pouvez accéder aux fonctions de feuille de calcul et les utiliser pour obtenir un résultat en spécifiant les arguments. Deux fonctions de la feuille de calcul peuvent vous aider à obtenir un nombre aléatoire dans le résultat.

  • RandEntre
  • RandTableau

Avant d’utiliser ces fonctions, assurez-vous de comprendre les arguments que vous devez définir. Maintenant, dans le code ci-dessous, vous avez RANDBETWEEN qui génère un nombre aléatoire entre deux nombres.

use-randbetween-génère-un-nombre-aléatoire-entre-deux-nombres
Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

Ici, le nombre maximum est 2000 et le nombre minimum est 1000. De la même manière, vous pouvez utiliser le RANDARRAY qui est une fonction de tableaux dynamiques.

Voici le code.

Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
utiliser-randarray-qui-est-une-fonction-de-tableau-dynamique

Si vous regardez la syntaxe du RANDARRAY, vous constaterez que vous pouvez entrer des nombres aléatoires dans une plage entière, ce qui n’est pas possible avec toutes les méthodes dont nous avons discuté ci-dessus.

syntaxe-de-randarray

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *