Tirage d'une variable aléatoire comprise ...

Tirage d'une variable aléatoire comprise ... - VB/VBA/VBS - Programmation

Marsh Posté le 07-10-2007 à 15:07:32    

comprise entre deux variables v1 et v2 par exemple.
 
En fait, je souhaite remplir un tableau avec des variables comprises entre deux variables (1 & 20 par exemple) que l'on saisit au préalable.
 
Le tableau va ainsi recueillir de façon aléatoire les différentes valeurs comprises entre 1 & 20 (pour le même exemple...)
 
Merci de votre aide...

Reply

Marsh Posté le 07-10-2007 à 15:07:32   

Reply

Marsh Posté le 07-10-2007 à 15:14:46    

==> Tirage sans remise quoi ...

Reply

Marsh Posté le 07-10-2007 à 15:33:11    

A l'aide ! :(

Reply

Marsh Posté le 07-10-2007 à 16:09:03    

Code :
  1. dim value as integer
  2. Randomize
  3. value = Int((v2 * Rnd) + v1)


 
Mais ça fait longtemps que j'ai pas fait de VB, à tester.

Reply

Marsh Posté le 07-10-2007 à 16:31:15    

Oui, merci mais j'ai trouvé ça. En fait, je veux faire rentrer les value dans un tableau(nb de champs = v2-v1 +1), sans que celles-ci soient identiques. En clair, il faut que le tableau recueille toutes les valeurs comprises entre v2 et v1, mais dans un ordre aléatoire...

Reply

Marsh Posté le 07-10-2007 à 18:36:31    

up up up

Reply

Marsh Posté le 07-10-2007 à 18:42:01    

bonjour,
Voici un petit classeur pas bien difficile à adapter qui te fait un mélange de ce que tu veux.
YAKA modifier la source et la zone cible. Si tu as besoin d'aide, tu demandes.
A+

Reply

Marsh Posté le 07-10-2007 à 19:42:11    

Merci je regarde :)

Reply

Marsh Posté le 07-10-2007 à 20:22:05    

...Une adaptation qui te fait un tirage sans écriture préalable dans la feuille :
 
Il suffit de modifier iBot et iTop pour modifier les bornes. L'affichage se fait colonne 1
 
 
Option Base 1
 
Sub TirAuSort()
Dim Tablo(), i%, j%, k%, x%, iBot%, iTop%
iBot = 1
iTop = 25
j = iTop - iBot + 1
ReDim Tablo(j, 2)
 
For i = 1 To j
Tablo(i, 1) = iBot - 1 + i
Next
 
For i = 1 To j
  Do
  Tablo(i, 2) = Int(j * Rnd()) + iBot
    For k = 1 To i
    If Tablo(k, 2) = Tablo(i, 2) Then x = x + 1
      If x > 1 Then
      x = 0
      Exit For
      End If
    Next
  Loop Until x = 1
  x = 0
Next
 
For i = 1 To j
Cells(i, 1) = Tablo(i, 2)
Next
End Sub
 
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed