Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nombre aléatoire en VBA

1 réponse
Avatar
Christian Lamotte
Bonjour à tous,

Je veux générer des nombres aléatoires en VBA avec les instructions

Randomize
x = Rnd()

Ces instructions sont dans des boucles (~1000 tours). Elles sont entourées
de bon nombre d'instructions.
Je constate que les nombres générés ont une certaine périodicité. De plus,
chaque fois que j'exécute le programme, je retrouve les mêmes nombres.

J'ai réalisé des petites macro du style

for i=1 to 1000
Randomize
cells(i,1)=Rnd()
next i

ou
for i=1 to 50
for j= 1 to 20
Randomize
cells(i,1)=Rnd()
next j
next i
...

Dans ces cas le problème n'apparait pas.
Il me semble que ce problème n'existait pas dans Excel < Vers 2000?.

Quelqu'un peut-il m'aider à trouver une solution?

L'aide ne m'avance pas dans la compréhension de ces fonctions. C'est quoi la
"seed"? C'est quoi la sequence aléatoire générée par rnd()?


Merci

1 réponse

Avatar
JièL Goubert
Bonjoir(c) Christian Lamotte

Pas du tout spécialiste en VBA, j'ai déjà vu ce pb dans d'autre
languages... en fait, la fonction randomize utilisée sans arguments
utilise toujours la même série de nombre

donc, essaye avec un truc du genre Randomize(Timer) ou dans ce gout la
(les spécialistes corrigerons)

Tmier, dans ce cas, tu donneras une valeur correspondant à l'heure
(secondes et centième compris) mais en valeur entière (... me semble t'il)

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Celle d'Outlook Express ici : www.faqOE.com

Le 18/04/2004 16:18 vous nous disiez ceci :

Bonjour à tous,

Je veux générer des nombres aléatoires en VBA avec les instructions

Randomize
x = Rnd()

Ces instructions sont dans des boucles (~1000 tours). Elles sont entourées
de bon nombre d'instructions.
Je constate que les nombres générés ont une certaine périodicité. De plus,
chaque fois que j'exécute le programme, je retrouve les mêmes nombres.

J'ai réalisé des petites macro du style

for i=1 to 1000
Randomize
cells(i,1)=Rnd()
next i

ou
for i=1 to 50
for j= 1 to 20
Randomize
cells(i,1)=Rnd()
next j
next i
...

Dans ces cas le problème n'apparait pas.
Il me semble que ce problème n'existait pas dans Excel < Vers 2000?.

Quelqu'un peut-il m'aider à trouver une solution?

L'aide ne m'avance pas dans la compréhension de ces fonctions. C'est quoi la
"seed"? C'est quoi la sequence aléatoire générée par rnd()?


Merci