Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

PB Debutant Simulation VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sharkantipav

XLDnaute Occasionnel
Bonsoir je met en piece jointe un fichier excel.
Dans l'onglet 'CorrelBeta' en colonne B et D j'ai la fonction LOI.NORMALE.INVERSE(ALEA(),C$1,C$2)

En ligne 150 j'obtiens des resultats affiches dans des cases en couleur.

Je souhaiterai faire simuler 1000 fois la fonction LOI.NORMALE.INVERSE(ALEA(),C$1,C$2)
Et copier/coller a chaque fois les resultats en couleur dans l'onglet d'a coté nommé Results.

A bon entendeur...
Merci Bcp
 

Pièces jointes

Re : PB Debutant Simulation VBA

Bonjour tout le monde.

Ah oui mais si c'est juste pour engendrer des nombres aléatoires en distribution normale,
citation de l'aide: C'est un marteau pour écraser une mouche, et je préfère ma fonction personnalisée:
Code:
Function AléatN(ByVal ÉT As Double, ParamArray Moy() As Variant) As Variant
Dim Ax As Double, Ay As Double, S As Double
Ax = Rnd * 2 - 1
Do: Ay = Ax: Ax = Rnd * 2 - 1: S = Ax * Ax + Ay * Ay: Loop Until S <= 1
S = Sqr(-2 * Log(S) / S) * ÉT
If UBound(Moy) = 1 Then
      AléatN = Array(Moy(0) + Ax * S, Moy(1) + Ay * S)
Else
      AléatN = Moy(0) + Ax * S
      End If
End Function
Elle peut d'ailleurs se simplifier un peu en considérant qu'elle n'aura jamais à rendre un complexe.
J'ai aussi:
Code:
Function DistrQsN(Rnd0à1 As Double, Moyenne As Double, ÉcartType As Double) As Double
Rem. Distribution quasi normale à part que le nombre engendré ne fuira la moyenne de plus de 4 fois l'écart type
DistrQsN = (Rnd0à1 ^ 0.18148 - (1 - Rnd0à1) ^ 0.18148) * 4 * ÉcartType + Moyenne
End Function
et:
Code:
Function DistrATH(Rnd0à1 As Double, Moyenne As Double, ÉcartMoitié As Double) As Double
Const Inv2ATanH½ = 191646774 / 210545501
Dim RndDispersé As Double: RndDispersé = Log(Rnd0à1 / (1 - Rnd0à1)) * Inv2ATanH½ ' = ATanH(2*Rnd0à1-1) / AtanH(0.5)
DistrATH = RndDispersé * ÉcartMoitié + Moyenne            ' Transformée de Fisher :  ATanH(x)=ln((1+x)/(1-x))/2
' ÉcartMoitié : Fourchette en + et - de la moyenne contenant statitistiquement la moitié des nombres à engendrer.
End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…