Nombre aléatoire en VBA

Le
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JièL Goubert
Le #1268746
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




Publicité
Poster une réponse
Anonyme