IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème de code Duration


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Problème de code Duration
    Bonjour, je suis nouveau sur le site et j'ai un petit problème concernant un calcul (dans le cadre de mon travail de diplôme). Je dois effectuer un code pour la duration (formule dans fichier word) qui correspond à la mesure de la durée de vie d'un actif à revenu fixe.

    Voici le code que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    'Définition des variables
        Dim Coupon As Currency
        Dim Nominal As Currency
        Dim Taux As Currency
        Dim NbAnnées As Integer
        Dim ValeurActualisée() As Currency
        Dim R As Currency
        Dim Rt As Currency
        Dim i As Integer
     
        'Initialisation des variables
        Nominal = InputBox("Montant du nominal")
        Taux = InputBox("Taux de l'obligation (en % ... Taper 5 pour 5%)") / 100
        NbAnnées = InputBox("Durée de l'obligation en années")
        Coupon = Taux * Nominal
        R = InputBox("taux de rendement actuariel")
        ReDim ValeurActualisée(NbAnnées, 1)
     
        'Alimentation du tableau et calcul des Valeurs actualisées au fur et à mesure de la boucle
        For i = 1 To NbAnnées
            Rt = (((Coupon * i) / (1 + R) ^ i)) / (100 / ((1 + R) ^ i))
        Next i
     
        'Calcul de la duration
        MsgBox "La duration est égale à : " & Rt + ((Nominal * i / ((1 + Vm) ^ i)) / (Nominal / ((1 + Vm) ^ i)))
    mais il ne me donne pas la bonne solution (je suis que débutant en VBA...).
    Donc si quelqu'un verrait une meilleure façon de faire et pourrait m'aider, je l'en remercie d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    c bon j'ai réussi à trouver ce qui clochait...

    le code si ça intéresse quelqu'un ou si quelqu'un était en train de chercher:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Private Sub CommandButton1_Click()
     
    'Définition des variables
        Dim Flux As Currency
        Dim Nominal As Currency
        Dim Taux As Currency
        Dim NbAnnées As Integer
        Dim ValeurActualisée() As Currency
        Dim Vm As Currency
        Dim VmT As Currency
        Dim i As Integer
     
        'Initialisation des variables
        Nominal = InputBox("Montant du nominal")
        Flux = InputBox("Montant du Flux ?")
        Taux = InputBox("Taux de l'obligation (en % ... Taper 5 pour 5%)") / 100
        NbAnnées = InputBox("Durée de l'obligation en années")
        Vm = 0
        VmT = 0
        ReDim ValeurActualisée(NbAnnées, 1)
     
        'Calcul des Valeurs actualisées au fur et à mesure de la boucle
        For i = 1 To NbAnnées
            'valeur actualisée, mais en pondérant chaque séquence par un coefficient multiplicateur correspondant au moment T de la séquence.
            'Vm(T)  = Somme de 1 à T de (CouponT/(1+r)^T)*T
            ValeurActualisée(i - 1, 0) = (Flux / ((1 + Taux) ^ i)) * i
            VmT = VmT + ((Flux / ((1 + Taux) ^ i)) * i)
            'Valeur actualisée d'une obligation au taux actuariel du marché
            'Vm  = Somme de 1 à T de CouponT/(1+r)^T
            ValeurActualisée(i - 1, 1) = Flux / ((1 + Taux) ^ i)
            Vm = Vm + (Flux / ((1 + Taux) ^ i))
        Next i
     
        Dim h As Integer
        Dim b As Integer
     
        h = VmT + ((Nominal * NbAnnées) / ((1 + Taux) ^ NbAnnées))
        b = Vm + (1000 / ((1 + Taux) ^ NbAnnées))
     
        'Calcul de la duration
        'Elle est égale au rapport Vm(T)/Vm
        'MsgBox "La duration est égale à : " & VmT / Vm
        MsgBox "La duration est égale à : " & h / b
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de code avec un tableau
    Par richard038 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/05/2006, 17h35
  2. problème de code javascript pour une vue 360°
    Par tomguiss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 22h50
  3. [POO] Problème de code PHP avec Internet Explorer
    Par bzoler dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2006, 11h00
  4. Problème de code besoin d un petit depannage
    Par rakengoule dans le forum MFC
    Réponses: 3
    Dernier message: 10/10/2005, 16h25
  5. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo