Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1806 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Calcul financiers avec VBA excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Calcul financiers avec VBA excel

n°2113822
ETOUKE
Posté le 29-11-2011 à 12:13:23  profilanswer
 

Bonjour à tous,
 
Je suis nouveau dans le forum et debutant sur VBA. Pour des besoins de contrôle, j'aimerais avoir les codes VBA pour le calcul du taux de rendement la valeur actuelle et la duration au 31/12/2010 d'une obligation à taux fixe ayant les caracteristiques suivantes:
 
1-cours à l'achat: 104.83
2- Taux coupon: 4.65%
3- Nominal : 1000
4- Qté: 120
5- prix de remboursement 100
6- Date d'achat 28/05/2003
7- Date de maturité : 15/01/2018
 
Je compte sur votre aide  

mood
Publicité
Posté le 29-11-2011 à 12:13:23  profilanswer
 

n°2113864
olivthill
Posté le 29-11-2011 à 16:32:13  profilanswer
 

Google est votre ami. Avec les mot "Excel duration", on trouve des résultats intéressants.
 
Pour des informations sur la duration, cf. http://fr.wikipedia.org/wiki/Duration , et la version anglaise qui est plus complète http://en.wikipedia.org/wiki/Bond_duration
 
Les caractéristiques de votre obligation sont incomplètes. Par exemple il n'est pas dit si le coupon est annuel (cas fréquent en France) ou semi-annuel, ou trimestriel, ou autre. La date de détachement du prochain coupon n'est précisée. Est-ce que le coupon est prépayé ou postpayé ? Il parait évident que le cours d'achat inclus le coupon couru, mais ce n'est pas dit. Parfois il existe des remboursements anticipés qui viennent compliquer les calculs, mais ce n'est peut-être pas votre cas. Le nominal de 1000 parait très élevé par rapport au prix d'achat et par rapport au prix de remboursement. Peut-être que le nominal n'est que de 100 en réalité. Ou bien, peut-être que le nominal serait en devise, alors que les prix d'achat et de remboursement seraient en pourcentage. Ou bien peut-être que le nominal aurait été confondu avec la quotité. Faut-il prendre en compte une conversion de devise ?
 
Avec toutes ces informations, vous devriez pouvoir calculer facilement la duration, car la formule est un polynome (alors que ce serait plus compliqué pour un calcul de taux actuariel où il faudrait faire une intégration et donc utiliser des logarithmes).
 
Edit :
La formule utilisée par Excel est expliquée sur la page http://www.excelfunctions.net/Exce [...] ction.html
Il s'agit d'une formule, et non-pas d'un code VBA.
Et j'ai oublié de dire qu'il faut savoir comment sont comptés les intérêts : avec des mois de 30 jours ou des mois ayant le nombre de jours rééls, avec des années de 360 jours, ou 365, ou des années ayant le nombre de jours rééls.


Message édité par olivthill le 29-11-2011 à 16:39:22
n°2113909
ETOUKE
Posté le 29-11-2011 à 19:03:20  profilanswer
 

Bonsoir,
 
merci pour vos rappels en effet  
 
le coupon est annuel,  
la base est 365  exact/axact
la date de détachament est le 15 janvier de chaque année
le remboursement est infine
le coupon est postpayé
le cours à l'achat est pieds de coupon
le remboursement est 100% à la maturité
les prix de revient et de remboursement sont des pourcentage.
 
En effet je sais calculer les différents éléments sous exel et il me faut faire un écheancier pour chaque titre et j'ai plusieurs ligne de titre (plus de 100) c'est la raison de mon problème.
 
D'avance merci

n°2114019
olivthill
Posté le 30-11-2011 à 12:04:44  profilanswer
 

Voici un exemple simplifié de calcul en VBA :

dt_debut = #1/15/2003#
dt_pr_coupon = #1/15/2004#
dt_fin = #1/15/2008#
pct_rate = 0.0465
face_value = 1000#
maturity_value = 1000#
 
' Calcul le nombre de flux
nb_flow = CInt(Year(dt_fin)) - CInt(Year(dt_debut))
'MsgBox (nb_flux)
 
' Somme des cash flow pondérés
a = 0#
For i_flow = 1 To nb_flow
  a = a + (i_flow * pct_rate * face_value) / (1 + pct_rate) ^ i_flow
Next
a = a + nb_flow * maturity_value / (1 + pct_rate) ^ nb_flow
 
' Prix du titre
b = (1 - (1 + pct_rate) ^ (-1 * nb_flow)) / pct_rate
b = pct_rate * face_value * b
b = b + maturity_value / (1 + pct_rate) ^ nb_flow
 
duration = a / b
MsgBox ("La duration est de : " & CStr(duration) & " année(s)." )


C'est un exemple simplifié, car je ne me souviens plus comment on traite le cas du rompu au début.
La formule mathématique vient de la page http://www.investopedia.com/univer [...] z1fBKPOIdY

n°2114027
ETOUKE
Posté le 30-11-2011 à 12:34:13  profilanswer
 

Merci pour votre aide
 
C'est supper


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Calcul financiers avec VBA excel

 

Sujets relatifs
[VBA Outlook] Est-ce possible ? Creer une "application" outlookselection listbox - excel 2007
comparaison et copie de cellules excel avec macroCalculateur de charges VBA Access
[VBA AutoCAD] Boucler sur calques [Résolu]VB Macro Importer des infos de tous mes docs excel dans un doc excel
Insérer le contenu d'un textbox sur une feuille de excel[RESOLU]Macro excel modification hypertexte
VBA couper une partie des données dans une autre colonne 
Plus de sujets relatifs à : Calcul financiers avec VBA excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR