Macro tirage aléatoire vba

nanyy1990 Messages postés 2 Statut Membre -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour tout le monde,

merci d'avance pour votre aide.
en fait j'ai un travail en vba et je sais pas du tout comment my prendre .
j'ai a peu prés 6 variables chacune dans un intervalle donné.[borne min, borne max]
le but est d'effectuer N Tirages aléatoires de toutes ces variables en meme temps, et d'ensuite stocker les résultats de chaque scénario (tirage) dans une fiche de calcul
Illustration

scénario 1 2 3 4 ...............N
Hypothèse du scénarios ( entrée choisies pour chacune des 6 variables d'entrée)
variable sortie 1

variable sortie n

donc mon probléme c'est justement la macro de tirage aléatoire simultané

merci

3 réponses

  1. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    bonjour nanyy1990, Pijaku
    je "pense" avoir compris la demande...mais
    je confirme c'est pas clair... ou bien l'utilisation de certains termes
    ne sont pas appropriés....

    j'ai a peu prés 6 variables chacune dans un intervalle donné.[borne min, borne max]

    Là c'est confus! parce que "a peu près " signifie que tu as du mal a compter....
    je suppose que tu veux dire que tu as 6 variables .
    chacune dans un tervalle donné.... donc il y aurait 6 bornes mini et 6 bornes max.

    moi pour faire simple j'ai fais 1 à 10 et 11 à 20.....

    le but est d'effectuer N Tirages aléatoires de toutes ces variables en meme temps
    en même temps.... Euh si tu m'accordes 1 p'tite seconde disons un 0.01s ça devrait le faire non?

    C'est une proposition qui peut faire hurler certains puriste et je m'en excuse.

    Sub Test1()
    
    
    
    Dim Valeur1
    Dim Valeur2
    Dim Valeur3
    Dim Valeur4
    Dim Valeur5
    Dim Valeur6
    Dim i As Integer
    
    
    Dim borneMax1
    Dim borneMin1
    Dim borneMax2
    Dim borneMin2
    Dim borneMax3
    Dim borneMin3
    Dim borneMax4
    Dim borneMin4
    Dim borneMax5
    Dim borneMin5
    Dim borneMax6
    Dim borneMin6
    
    
    Randomize    ' Initialise le générateur de nombres aléatoires.
    
     borneMax1 = 10
     borneMin1 = 1
     borneMax2 = 20
     borneMin2 = 11
     borneMax3 = 30
     borneMin3 = 21
     borneMax4 = 40
     borneMin4 = 31
     borneMax5 = 50
     borneMin5 = 41
     borneMax6 = 60
     borneMin6 = 51
    
    
    ' Renvoie une valeur aléatoire comprise entre borneMin et
    ' borneMax c'est dire ici 1 et 10 inclus.
    ' int renvoie un entier
    Sheets("Feuil1").Select
    For i = 1 To 10 ' on fait 10 tirage
        Valeur1 = Int((borneMax1 * Rnd) + borneMin1)
        Valeur2 = Int((borneMax2 * Rnd) + borneMin2)
        Valeur3 = Int((borneMax3 * Rnd) + borneMin3)
        Valeur4 = Int((borneMax4 * Rnd) + borneMin4)
        Valeur5 = Int((borneMax5 * Rnd) + borneMin5)
        Valeur6 = Int((borneMax6 * Rnd) + borneMin6)
        ' on écrit
        Cells(i, 1).Value = Valeur1
        Cells(i, 2).Value = Valeur2
        Cells(i, 3).Value = Valeur3
        Cells(i, 4).Value = Valeur4
        Cells(i, 5).Value = Valeur5
        Cells(i, 6).Value = Valeur6
    
    Next
    
    End Sub
    1
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Lapon compris.
    Lapin con pris...
    Je n'ai rien capté à ta question, merci de reformuler.

    Sinon, voir du côté de Randomize...
    0
  3. nanyy1990 Messages postés 2 Statut Membre
     
    j'avoue j'ai pas été claire , je reformule avec un exemple simple :

    on dispose d'une fiche de calcul qu'on appelle INPUT et qui contient les variables A B C avec A B déterministes et C aléatoire mais dans l'intervalle [-5,5%]

    Variables Valeurs
    A 100
    B 5%
    C [+5%;-5%]

    1- la macro VB va devoir lire la fiche de calcul excel et écrire dedans les variables retenues pour le tirage i. A et B étant deterministes elle ne fera que recopier
    pour C Il faut choisir aléatoirement

    Variables Valeurs
    A 100
    B 5%
    C -2%

    2- un moteur de calcul (feuille excel CALCUL )effectue des calculs intermédiaires (je ne crois pas que la vb intervient ici)
    3- La macro vb recopie pour chaque scénario (tirage) les valeurs des entrées A B et C et les valeurs des variables de sorties dans une 3éme fiche (OUTPUT)

    Scenario A B C sortie1 sortie2 1
    2
    3
    4
    5
    6
    7
    0