
En VBA, l’instruction `Randomize` est utilisée pour initialiser le générateur de nombres aléatoires avec une nouvelle valeur de graine. Cela est souvent fait pour s’assurer que les résultats des fonctions qui génèrent des nombres aléatoires, comme `Rnd`, sont différents à chaque exécution du code. Voici comment vous pouvez utiliser l’instruction `Randomize` :
Sub ExempleRandomizeSansParametre()
Randomize ' Initialise le générateur de nombres aléatoires
Dim aleatoire1 As Double
aleatoire1 = Rnd ' Génère un nombre aléatoire entre 0 et 1
MsgBox aleatoire1
End Sub
Sub ExempleRandomizeAvecParametre()
Randomize 42 ' Utilise 42 comme graine
Dim aleatoire2 As Double
aleatoire2 = Rnd ' Génère un nombre aléatoire entre 0 et 1
MsgBox aleatoire2
End Sub
- Sans paramètres : Utiliser `Randomize` sans paramètres initialise le générateur avec une graine basée sur l’horloge système. Cela signifie que chaque fois que vous exécutez votre code, les résultats devraient être différents (si vous ne redémarrez pas le code à la même milliseconde).
- Avec un paramètre (optionnel) : Vous pouvez également passer un argument numérique à `Randomize`, qui sera utilisé comme graine. Cela permet de reproduire les mêmes séquences de nombres aléatoires si vous utilisez la même graine.
Remarques :
- Si vous n’utilisez pas `Randomize` avant d’appeler `Rnd`, VBA utilisera toujours la même séquence de nombres chaque fois que vos macros s’exécutent, ce qui n’est pas vraiment “aléatoire”.
- Lorsque vous souhaitez une séquence de nombres nouveaux et différents à chaque fois, l’utilisation de `Randomize` sans paramètres est généralement préférable.
- Si vous avez besoin d’une séquence répétable pour le débogage ou les tests, utiliser `Randomize` avec un argument constant est utile.