DateDiff, DateAdd - sub or function not defined VBA

Bonjour,

Pouvez m'aider à corriger une condition dans ce code ?.
C'est la variable "timeToPayment" qui est égale = (firstCouponDate - valuationDate) + (i - 1) * (daysInYear / paymentFrequency) #[Equation 1].

En fait, la fonction prend en entrée
la date de paiement du premier coupon (firstCouponDate) : exemple 30/06/2022
la date de fréquence de paimenet de coupon (paymentFrequency)) : exemple 2 (2 fois par an)
le nombre de jour dans l'année (daysInYear)
la date de calcul du prix (valuationDate) : exemple 31/12/2021

lorsque valuationDate est inférieure à firstcoupondate = alors tous les paiements de coupon sont dans le futur
et les temps de paiement sont donnés par #[Equation 1], exemple (181, 181 + (daysInYear/paymentFrequency), 181 + 2 * (daysInYear/paymentFrequency) etc...)

lorsque valuationDate est supérieure à firstcoupondate = il faudrait faire en sorte que first coupon soit la nième date de coupon en ignorant le coupon payé avant valuationDate
par exemple si valuation date = 25/10/2023, alors first coupon ne sera plus 30/06/2022 mais 31/12/2023.
Et #[Equation 1] restera pertinente pour déterminer les temps de paiement, exemple (67, 67 + (daysInYear/paymentFrequency), 67 + 2 * (daysInYear/paymentFrequency) etc...)

Je me demande également si la variable NbCoupons (qui détermine la boucle for où itère #[Equation 1]) est correctement définie, je crois que oui.

PS : j'aimerai utiliser dateDiff et dateAdd pour être plus précis dans le code mais j'ai "sub or function not defined vba"... surement que je m'y prends mal.
j'ai essayé de revoir le code mais il y a des écarts de dates et j'oublie certains coupons futurs alors que seuls les coupons passés doivent être ignorés.

Merci

Bonjour HiggsB,

As-tu besoin de recourir au VBA du fait que les fonctions financières d'EXCEL ne conviennent pas ?

https://www.hec.ca/cams/rubriques/Excel_finance.pdf

Bonjour GVIALLES,

La fonction en elle-même fait partie d'un travail que je dois rendre.

Je comprends...

bonjour HiggsB,Gvialles,

je ne comprends pas la question, veuillez complèter le fichier et dire quel est le résultat voulu.

2higgs.xlsb (39.01 Ko)

Je ne comprends pas ces 360 et 365 jours par année, une année est toujours 365/366 jour mais pour la banque dans le siècle précédent et sans calculatrice, pour simplifier les choses, une année était 12 mois de 30 jours, donc 360 jours, mais ce choix de 360 ou 365 n'a rien à voir avec votre periode.

La seul chose, je pense, c'est qu'on doit corriger le taux de l'interêt de 360 vers 365 jours

Bonjour BsAlv,

J'ai complété le fichier, vous allez mieux comprendre avec les différents cas.

Voici le fichier

2higgs.xlsb (28.47 Ko)

re,

j'ai aucune idée de ce que je calcule ....

je reçois ces chiffres intermediaires

image

avec cette macro, mais j'ai modifié des choses concernant ces 360/365 jours, etc.

Donc, je pense que la méthode est correcte mais peut-être la calculation ne l'est pas encore.

2higgs-1.xlsb (43.98 Ko)

Merci BsAlv, j'ai utilisé cette que tu m'as donné et je l'ai transformé un peu et ça marche.

Rechercher des sujets similaires à "datediff dateadd sub function defined vba"