fonction randomize

louli78

XLDnaute Nouveau
Bonjour,

Je n'arrive pas très bien à écrire la fonction rnd sous VBA car mes valeurs min et max varient tout le temps. Du coup j'ai écris le formule:
A = Int((Mx - Mn + 1) * Rnd + Mn)
et j'ai défini Mx = range("C9").value
et Mn = range("C10").value

Mais ca bug. Savez vous comment je peux faire?
 

louli78

XLDnaute Nouveau
Re : fonction randomize

Voici ma programmation. Il manque probablement plein de choses, et le programme est surement faux dans sa globalité. On ne se moque pas je suis débutante en VBA :)

Sub nombres_aléatoires()

Dim i As Integer, j As Integer, k As Integer
Dim Tblo(), Rg As Range, A As Integer
Dim Mx As Integer, Mn As Integer
Dim Nb As Integer
Dim feuille As String

Mn = Range("C9").Value
Mx = Range("C10").Value
Nb = Range("Z10").Value

feuille = "risque"


'For Count = 1 To Range("Z10").Value
ReDim Tblo(1 To Nb)
Randomize
Application.ScreenUpdating = False
For i = 1 To UBound(Tblo, 1)
Tblo(i, 1) = Int((Mx - Mn + 1) * Rnd + Mn)
For k = 1 To Nb - 1
Next

End Sub
 

jojo3008

XLDnaute Junior
Re : fonction randomize

Hello Louli, Pierrot , lebarbo

ya deux boucles For , et une troisième avec un guillemet qui la met en commentaire...
Puis dans ton Next il faut que tu mette Next compteur
dernière remarque dans ton dernier for il se passe rien ? Le plus simple serait que tu nous dise ce que tu veux faire exactement !

A bientot
jojo


Edit : désolé j avais oublié de dire bonjour :)
 

louli78

XLDnaute Nouveau
Re : fonction randomize

En gros, j'ai un investissement que je veux faire varier en fonction d'un certain % de variation que l'on peut changer: je calcul les deux nouvelles valeurs d'investissement qui vont etre mon min et mon max:
Mn = Range("C9").value
Mx = Range("C10").Value
Je veux générer autant de valeurs aléatoires entre mes deux bornes (min et max) que le nombre inscrit dans la case Z10 (qui peut également etre modifiée) d'ou le Nb = Range("Z10").Value

Je ne sais pas si je suis assez claire...
 

jojo3008

XLDnaute Junior
Re : fonction randomize

Re
ça me rapelle mes simulations de monte carlo :)
essaye ça :

Code:
Sub test()
'définit préalablement Min Max et Nb
dim i as integer
Dim tabl(Nb) as double
Randomize
For i = 1 To Nb
tabl(i) = Int((Mx - Mn + 1) * Rnd + Mn)
Next i
End Sub

Mais tu veux pas récupérer tes résultats? si tu vx t as juste a les mettre dans une cellule.

Voila j'espère que c est ca que tu voulais.
A bientot

jojo
 

louli78

XLDnaute Nouveau
Re : fonction randomize

Je suis en stage, et je fais des calculs de rentabilité. Du coup j'ai plein de paramètres que je vais devoir faire varier de façon complètement aléatoire pour ensuite obtenir un Taux de rentabilité interne propore a chaque sénario et ensuite réprésenter toute cette distribution de TRI en fonction des fréquences d'apparition (loi normale... blablabla). Tu as déja fais des choses comme ca?
 

Discussions similaires