Utiliser les mêmes valeurs aléatoires dans deux Sub différentes

Bonjour à tous,

Je suis débutante sur VBA et j'aurai besoin de votre aide. Je souhaiterai coder des valeurs aléatoires dans un fichier CSV dans une première Sub puis dans une deuxième Sub je voudrais récupérer ces données pour les rentrer dans un tableau. Or je n'arrive pas à faire comprendre au code que les valeurs obtenues dans la première Sub sont celles que je souhaite utiliser dans la seconde Sub. Donc voila je suis bloquée.

Je vous mets le code pour que vous puissiez mieux comprendre car ce que j'ai écrit plus haut n'est peut-être pas très clair...

Merci d'avance pour toutes réponses.

Sub liste()

Dim c, d, e As Integer
Dim b As Double

Dim fic As String
fic = "D:\"

Dim i As Integer

Open "testprojetinfo.csv" For Output As #1

For i = 2 To 97
Randomize
b = 0.5 * Rnd + 6.2
c = Int(10 * Rnd) + 0
d = Int(12 * Rnd) + 0
e = Int(55 * Rnd) + 0

machaine = CStr(b) + ";" + CStr(c) + ";" + CStr(d) + ";" + CStr(e)
Print #1, machaine

Next i
Close #1
End Sub

Sub listes()

Dim c, d, e As Integer
Dim b As Double

Open "testprojetinfo.csv" For Output As #1

For i = 2 To 97
Cells(i, 1) = i - 1

Cells(i, 2) = b

Cells(i, 3) = c

Cells(i, 4) = d

Cells(i, 5) = e

Next i
Close #1
End Sub

Bonjour,

Si les 2 macros sont dans le même module,

tu dois les déclarer "Private" avant la première Sub: Elles seront ainsi visibles dans tout le module.

Private c as integer, d as integer, e as integer
Private b as double

Subliste
........
Sublistes
......

Si les 2 sub ne sont pas dans le même module, il faut les déclarer "Public", pour quelles soient visibles dans tout le projet.

Autre chose:

dim c, d, e as integer

déclare e comme integer, mais c et d comme variant; il faut préciser le type chaque fois, sinon Variant est attribué par défaut.

Cordialement

bonjour,

proposition de correction de tes codes

Sub liste()

    Dim c, d, e As Integer
    Dim b As Double

    Dim fic As String
    fic = "D:\"

    Dim i As Integer

    Open fic & "testprojetinfo.csv" For Output As #1

    For i = 2 To 97
        Randomize
        b = 0.5 * Rnd + 6.2
        c = Int(10 * Rnd) + 0
        d = Int(12 * Rnd) + 0
        e = Int(55 * Rnd) + 0

        machaine = CStr(b) + ";" + CStr(c) + ";" + CStr(d) + ";" + CStr(e)
        Print #1, machaine

    Next i
    Close #1
End Sub

Sub listes()

    Dim ligne As String
    Dim i As Long
    Dim fic As String
    fic = "D:\"

    Open fic & "testprojetinfo.csv" For Input As #1

    Do While Not EOF(1)
        i = i + 1
        Cells(i+1, 1) = i
        Line Input #1, ligne
        Cells(i + 1, 2).Resize(, 4) = Split(ligne, ";")
    Loop
    Close #1
End Sub
Rechercher des sujets similaires à "utiliser memes valeurs aleatoires deux sub differentes"