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 :

Probleme creation d'une fonction


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Financier
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Financier

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut Probleme creation d'une fonction
    Salut à tous ,

    J'aimerais créer une fonction me permettant d'effectuer un calcul : ((1 + r) ^ -((365 - jourscouru) / 365)) * (coupon + coupon * ((1 - (1 + r) ^ -année) / r) + (VR / (1 + r) ^ année))
    avec :
    r = taux
    jourscouru = un nombre de jours
    coupon = un prix (à virgule)
    VR = un prix (peut être à virgule)
    année = un nombre d'année (peut etre de la forme 5.XX)

    Voila ce que j'ai voulu faire (qui ne fonctionne pas of course)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function PrixObligation(r, jourscouru, coupon, année, VR) As Integer
     
     
     
    prix obligation = ((1 + r) ^ -((365 - jourscouru) / 365)) * (coupon + coupon * ((1 - (1 + r) ^ -année) / r) + (VR / (1 + r) ^ année))
     
     
    End Function
    Merci à ceux qui prendront le temps de m'help !

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ecrire que cela ne fonctionne pas n'aide personne.
    As-tu un message d'erreur et si oui lequel, la fonctionne ne renvoie pas le résultat escompté, etc.

    Pour ma part, si je me réfère au code affiché, il est clair qu'un message d'erreur a été renvoyé. En effet la fonction se nomme PrixObligation or en ligne 5 du code affiché l'orthographe du nom de la fonction n'est pas respecté (prix obligation)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Financier
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Financier

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut
    Effectivement j'ai fait une erreur débile ... et désolé pour le titre , je note !

    J'ai modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function PrixObligation(r, jourscouru, coupon, année, VR) As Integer
    x = ((1 + r) ^ -((366 - jourscouru) / 366))
    a = VR / ((1 + r) ^ année)
    b = 1 - ((1 + r) ^ -(année))
     
    PrixObligation = x * (c + c * (b / r)) + a
     
    End Function
    Ca fonctionne, seul hic je trouve 94 et non 115.12
    Je crois que mon problème vient de mon exposant
    Prenons ici jourscouru = 79
    J'aimerais ecrire : (1+r)^(366-79/366= = (1+r)^(287/366)

    MODIF :

    la seule méthode que j'ai trouvé c'est de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function XXXX(r, jourscouru) As Double
    a = 366 - jourscouru
    b = a / 366
    XXXX = (1 + r) ^ b
     
    End Function

Discussions similaires

  1. Probleme écriture d'une fonction en C
    Par Premium dans le forum C
    Réponses: 8
    Dernier message: 26/11/2005, 13h09
  2. [T-SQL] Creation d'une fonction (syntaxe)
    Par MaxiMax dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 18/08/2005, 15h27
  3. creation d'une fonction dynamiquement...
    Par bibile dans le forum Général Python
    Réponses: 2
    Dernier message: 04/08/2005, 10h38
  4. creation d'une fonction par l'utilisateur
    Par michelk dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 15/03/2005, 09h53
  5. Creation d'une fonction temporaire avec droit datareader
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/10/2004, 14h26

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