A voir également:
- Vba simulation
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Logiciel simulation ombre solaire - Télécharger - Architecture & Déco
3 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
5 févr. 2010 à 10:06
5 févr. 2010 à 10:06
Bonjour,
Difficile de t'aider si on est un cancre en math...
la valeur "B" varie être quelles limites et avec quelle précision ?
Difficile de t'aider si on est un cancre en math...
la valeur "B" varie être quelles limites et avec quelle précision ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
5 févr. 2010 à 18:38
5 févr. 2010 à 18:38
Re,
pour calculer la moyenne de 1000 fois A1* valeur aléatoire entre 0 et 1
Option Base 1
Sub stat()
Dim tablo(1000)
test = Range("A1")
Randomize
For cptr = 1 To 1000
tablo(cptr) = test * Rnd()
Next
MsgBox "moyenne: " & Application.Average(tablo)
End Sub
pour les autres résultats, il faut utiliser la traduction des fonctions stat en anglais (démarrer-rechercher:VBAList.xls)
pour calculer la moyenne de 1000 fois A1* valeur aléatoire entre 0 et 1
Option Base 1
Sub stat()
Dim tablo(1000)
test = Range("A1")
Randomize
For cptr = 1 To 1000
tablo(cptr) = test * Rnd()
Next
MsgBox "moyenne: " & Application.Average(tablo)
End Sub
pour les autres résultats, il faut utiliser la traduction des fonctions stat en anglais (démarrer-rechercher:VBAList.xls)
Merci pour ta reponse,
J'ai cependant quelques questions par rapport a ta reponse:
1) comment je fais pour avoir la solution " moyenne" réecrite dans la feuille excel plutot que de l'avoir en message box.
2) J'aimerai inclure une sorte de boucle en fait au lieu de faire la simulation sur la cellule A1 seulement, j'aimerai avoir une simulation dans les 4 cellules A1:B2, j'imagine qu il faut declarer un tableau de 1000 pour chaque cellule, mais je sais pas trop comment le faire.
3) enfin comme pour ma premiere question j'aimerai pouvoir enregistrer les datas moyennes dans un tableau de 4 aussi pour pouvoir continuer a faire manuellement les calculs.
le but dans tout ca c'est d'avoir 2 tableaux un tableau de 4 cellules pour la simulation qui va generer un tableau de 4 cellules ayant l'information statistique en l'occurence la moyenne et de pouvoir faire par apres des manipulations manuelles avec dans excel.
Merci d'avance pour toute reponse.
J'ai cependant quelques questions par rapport a ta reponse:
1) comment je fais pour avoir la solution " moyenne" réecrite dans la feuille excel plutot que de l'avoir en message box.
2) J'aimerai inclure une sorte de boucle en fait au lieu de faire la simulation sur la cellule A1 seulement, j'aimerai avoir une simulation dans les 4 cellules A1:B2, j'imagine qu il faut declarer un tableau de 1000 pour chaque cellule, mais je sais pas trop comment le faire.
3) enfin comme pour ma premiere question j'aimerai pouvoir enregistrer les datas moyennes dans un tableau de 4 aussi pour pouvoir continuer a faire manuellement les calculs.
le but dans tout ca c'est d'avoir 2 tableaux un tableau de 4 cellules pour la simulation qui va generer un tableau de 4 cellules ayant l'information statistique en l'occurence la moyenne et de pouvoir faire par apres des manipulations manuelles avec dans excel.
Merci d'avance pour toute reponse.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
10 févr. 2010 à 10:40
10 févr. 2010 à 10:40
Bonjour,
essaies:
A1:B2 cellules de test
E1:E4: cellules de résultats
ainsi tu peux ajouter de nouveaux test et placer les résultats où tu le souhaites
cordialement,
Michel
essaies:
Option Base 1 Sub stat(cellule_test, cellule_moy) Dim test As Double Dim tablo(1000) test = Range(cellule_test) Randomize For cptr = 1 To 1000 tablo(cptr) = test * Rnd() Next Range(cellule_moy) = "moyenne sur test en " & cellule_test & ": " & Application.Average(tablo) End Sub Sub plusieurstest() Application.ScreenUpdating = False stat "A1", "E1" stat "B1", "E2" stat "A2", "E3" stat "B2", "E4" End Sub
A1:B2 cellules de test
E1:E4: cellules de résultats
ainsi tu peux ajouter de nouveaux test et placer les résultats où tu le souhaites
cordialement,
Michel
Merci Michel
Une dernière question qui est différente de ma question initiale:
As tu une idée de comment générer des nombres aléatoires corrélés.
Par exemple:
On a le prix d'Aluminium, Cuivre & OR comme variables. Je veux générer un array (3,5) de nombres aléatoires pour chaque metal mais je veux qu'ils soit corrélés( en colonne j ai mettons les jours: lundi mardi...vendredi et en ligne j ai les 3 métaux) . Ainsi mettons qu'on est dimanche et que je veux calculer l'evolution du cuivre pour lundi ( cuivre (lundi) = cuivre(dimanche)*(1+aléatoire)), mais si la correlation cuivre aluminium est de 98% avoir un aleatoire de 0,25 pour cuivre pour lundi et -0,8 pour aluminium ne fait pas de sens puisque j'aurai une evolution des prix qui serait inverse a la correlation des 2 metaux.
Donc voila mon petit probleme, si tu as une solution je suis ouvert a toute suggestion.
Merci encore tes explications & code m'ont aidé a amélioré mon algorithmique en générale et facilité ma compréhension de certaines spécificité de VBA.
Une dernière question qui est différente de ma question initiale:
As tu une idée de comment générer des nombres aléatoires corrélés.
Par exemple:
On a le prix d'Aluminium, Cuivre & OR comme variables. Je veux générer un array (3,5) de nombres aléatoires pour chaque metal mais je veux qu'ils soit corrélés( en colonne j ai mettons les jours: lundi mardi...vendredi et en ligne j ai les 3 métaux) . Ainsi mettons qu'on est dimanche et que je veux calculer l'evolution du cuivre pour lundi ( cuivre (lundi) = cuivre(dimanche)*(1+aléatoire)), mais si la correlation cuivre aluminium est de 98% avoir un aleatoire de 0,25 pour cuivre pour lundi et -0,8 pour aluminium ne fait pas de sens puisque j'aurai une evolution des prix qui serait inverse a la correlation des 2 metaux.
Donc voila mon petit probleme, si tu as une solution je suis ouvert a toute suggestion.
Merci encore tes explications & code m'ont aidé a amélioré mon algorithmique en générale et facilité ma compréhension de certaines spécificité de VBA.
5 févr. 2010 à 17:54
"B" est aléatoire de moyenne zero et d'ecart type 1, en clair il peut etre positif ou negatif mais mettons si on simule 1000 fois on veut que la moyenne de B soit nulle. L'ecart type de 1 c'est pour dire que l'on veut tres rarement des valeurs de plus grand que 1 ou plus petit que -1 en clair en moyenne B est plus petit ou egale a la valeur absolue de 1.