Automatiser les rapports de simulation Monte Carlo 

ChatGPT a dit : 

ChatGPT 

Automatiser les rapports de simulation Monte Carlo dans Excel avec VBA permet de générer rapidement plusieurs résultats de simulation et de produire des rapports analytiques basés sur ces résultats. Voici un exemple détaillé de la façon dont vous pouvez créer une simulation de Monte Carlo pour un projet ou un investissement, en générant des résultats aléatoires et en créant un rapport avec VBA dans Excel. 

Étapes de la simulation Monte Carlo 

  1. Définir les variables d’entrée (paramètres du modèle)
  • Par exemple, si vous simulez un projet, vous pouvez avoir des variables comme le coût initial, les revenus attendus, les coûts opérationnels, les taux de croissance, etc. 
  1. Générer des nombres aléatoires pour les entrées
  • Utilisez les distributions statistiques appropriées pour générer des valeurs aléatoires (par exemple, une distribution normale pour les rendements). 
  1. Exécuter la simulation sur un grand nombre de itérations
  • Par exemple, 10 000 itérations pour obtenir une distribution des résultats. 
  1. Analyser les résultats
  • Calculez des mesures comme la moyenne, la médiane, les percentiles, etc. 
  1. Automatiser la génération du rapport
  • Créez un rapport dans une nouvelle feuille Excel avec des graphiques, des tableaux et des mesures analytiques. 

Code VBA pour Automatiser la Simulation Monte Carlo 

Voici un exemple détaillé de code VBA pour une simulation Monte Carlo : 

  1. Préparer les entrées

Ce code suppose que vous avez un modèle simple avec trois variables : 

  • Coût initial (qui suit une distribution normale), 
  • Revenu annuel (qui suit une distribution uniforme), 
  • Durée de vie du projet (nombre d’années). 
  1. Code VBA pour la simulation

vba 

Copier le code 

Sub SimulationMonteCarlo() 

 

    ‘ Définir les paramètres de la simulation 

    Dim nbIterations As Long 

    nbIterations = 10000 ‘ Nombre d’itérations 

     

    Dim i As Long 

    Dim coutInitial As Double 

    Dim revenuAnnuel As Double 

    Dim dureeVie As Long 

    Dim fluxDeTresorerie As Double 

    Dim resultatFinal As Double 

    Dim totalResultat As Double 

     

    ‘ Créer un tableau pour stocker les résultats 

    Dim resultats() As Double 

    ReDim resultats(1 To nbIterations) 

     

    ‘ Configurer la feuille de résultats 

    Sheets.Add(After:=Sheets(Sheets.Count)).Name = « Rapport Monte Carlo » 

    With Sheets(« Rapport Monte Carlo ») 

        .Cells(1, 1).Value = « Iteration » 

        .Cells(1, 2).Value = « Flux de Trésorerie » 

    End With 

     

    ‘ Lancer la simulation Monte Carlo 

    For i = 1 To nbIterations 

        ‘ Générer les variables aléatoires pour chaque itération 

        coutInitial = Application.WorksheetFunction.NormInv(Rnd(), 100000, 20000) ‘ Coût initial avec une distribution normale 

        revenuAnnuel = Application.WorksheetFunction.RandBetween(5000, 20000) ‘ Revenu annuel avec une distribution uniforme 

        dureeVie = Application.WorksheetFunction.RandBetween(5, 15) ‘ Durée du projet entre 5 et 15 ans 

         

        ‘ Calculer le flux de trésorerie (revenus annuels – coûts sur la durée) 

        fluxDeTresorerie = revenuAnnuel * dureeVie – coutInitial 

         

        ‘ Stocker le résultat dans le tableau 

        resultats(i) = fluxDeTresorerie 

         

        ‘ Enregistrer les résultats dans la feuille Excel 

        Sheets(« Rapport Monte Carlo »).Cells(i + 1, 1).Value = i 

        Sheets(« Rapport Monte Carlo »).Cells(i + 1, 2).Value = fluxDeTresorerie 

         

        ‘ Ajouter à la somme des résultats pour calculer la moyenne plus tard 

        totalResultat = totalResultat + fluxDeTresorerie 

    Next i 

     

    ‘ Calculer des statistiques pour les résultats 

    Dim moyenne As Double 

    Dim ecartType As Double 

    Dim minResultat As Double 

    Dim maxResultat As Double 

     

    moyenne = totalResultat / nbIterations 

    ecartType = Application.WorksheetFunction.StDev(resultats) 

    minResultat = Application.WorksheetFunction.Min(resultats) 

    maxResultat = Application.WorksheetFunction.Max(resultats) 

     

    ‘ Ajouter les résultats de la simulation dans le rapport 

    With Sheets(« Rapport Monte Carlo ») 

        .Cells(nbIterations + 3, 1).Value = « Moyenne » 

        .Cells(nbIterations + 3, 2).Value = moyenne 

        .Cells(nbIterations + 4, 1).Value = « Écart-type » 

        .Cells(nbIterations + 4, 2).Value = ecartType 

        .Cells(nbIterations + 5, 1).Value = « Min » 

        .Cells(nbIterations + 5, 2).Value = minResultat 

        .Cells(nbIterations + 6, 1).Value = « Max » 

        .Cells(nbIterations + 6, 2).Value = maxResultat 

    End With 

     

    ‘ Créer un graphique pour visualiser la distribution des résultats 

    Dim chartObj As ChartObject 

    Set chartObj = Sheets(« Rapport Monte Carlo »).ChartObjects.Add(Left:=200, Width:=400, Top:=50, Height:=300) 

    chartObj.Chart.ChartType = xlColumnClustered 

    chartObj.Chart.SetSourceData Source:=Sheets(« Rapport Monte Carlo »).Range(« B2:B » & nbIterations + 1) 

    chartObj.Chart.HasTitle = True 

    chartObj.Chart.ChartTitle.Text = « Distribution des résultats Monte Carlo » 

     

    MsgBox « Simulation Monte Carlo terminée ! », vbInformation 

End Sub 

Explication du code 

1. Définition des paramètres

  • nbIterations: Nombre d’itérations pour la simulation (10 000 par défaut). 
  • coutInitial: Coût initial généré avec une distribution normale. 
  • revenuAnnuel: Revenu annuel généré avec une distribution uniforme. 
  • dureeVie: Durée du projet générée entre 5 et 15 ans avec une distribution uniforme. 

2. Boucle de simulation

  • La boucle For i = 1 To nbIterations génère les variables aléatoires pour chaque itération, effectue le calcul du flux de trésorerie et enregistre les résultats dans un tableau. 

3. Calcul des statistiques

  • Une fois les itérations terminées, le code calcule la moyenne, l’écart-type, le minimum et le maximum des résultats générés. 

4. Création du rapport

  • Les résultats de chaque itération sont enregistrés dans une nouvelle feuille nommée « Rapport Monte Carlo ». 
  • Des statistiques sont calculées et ajoutées sous les résultats de la simulation. 

5. Graphique

  • Un graphique en colonnes est créé pour visualiser la distribution des résultats. 

Résultat attendu dans Excel 

  • Une nouvelle feuille est créée avec les résultats de la simulation Monte Carlo. 
  • Pour chaque itération, vous avez la valeur du flux de trésorerie. 
  • En bas de la feuille, vous trouverez des statistiques comme la moyenne, l’écart-type, le min et le max. 
  • Un graphique illustrant la distribution des résultats est également ajouté à la feuille. 

Personnalisation 

  • Distribution des variables : Vous pouvez ajuster les types de distributions pour chaque paramètre selon vos besoins (par exemple, utiliser une distribution triangulaire, lognormale, etc.). 
  • Modèle : Vous pouvez remplacer le modèle simple de flux de trésorerie par des calculs plus complexes en fonction de votre projet. 
  • Rapport : Le format du rapport peut être personnalisé (ajout de couleurs, d’annotations, etc.). 

Cela vous permet d’automatiser efficacement la simulation Monte Carlo dans Excel et de générer un rapport détaillé et visuel des résultats. 

S’abonner
Notifier de
0 Commentaires
le plus ancien
le plus récent le plus populaire
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x