Programmation du calcul d'une obligation classique

vivelovalie Messages postés 2 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 25 octobre 2006 - 25 oct. 2006 à 11:06
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 25 oct. 2006 à 14:03
Salut à tous,


Voila je suis debutant en programmation VBA (et encore plus en VB6 !!!), j'ai un exercice financier à résoudre qui ce formule ainsi :


" Soit une obligation classique de valeur faciale F, de maturité n, délivrant un coupon périodique C. La relation entre son prix P et son taux de rendement actuariel R est :



P



=
n SIGMA)
k
=1
C/
(1 +
R
)^
k
+
F/
(1 +
R
)^
n

Ecrire (1) un programme VB, et (2) une macro VBA sous Excel, calculant



P
en fonction de
n
,
C
,
F
et
R
."

Pour etre franc je rame  !!!, Si l'un d'entre vous prennez un peu de son temps pour tenter de m'expliquer la demarche à suivre je lui en serais trés reconnaissant (c'est deja ca non ? ).

Surtout n'hésitez pas à me parler comme à un enfant, je voudrais surtout comprendre la logique (notamment des boucles)

Merci d'avance

et vive l'ovalie !!!

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 oct. 2006 à 11:34
Déjà pour commencer ta formule C/ (1 +  R )^ k  + F/ (1 +  R )^ n est à proiri correcte au niveau syntaxe de vb

Ensuite tu fait une somme (sigma) de résultats, donc il te faut une variable pour stocker cette somme au fur et à mesure du calcul. On va l'appeller result et l'initialisée à 0 au départ. Ensuite à chaque calcul on va rajouter à ce résultat, le resultat du calcul de la formule.

Ensuite tu fait le calcul pour un indice k allant de 1 à n, ce qu'on appelle une itération et qui se code avec une boucle For.
Ca donnerait donc :

'Initialisation du résultat
result = 0

'Boucle d'itération
For k = 1To n
'calcul de la formule pour cet item et ajout au résultat déja calculé
result = result + (C / (1 + R) ^ k + F / (1 + R) ^ n)
Next

'Fin de la boucle, affichage du résultat final
MsgBox result

Coloration syntaxique automatique [Sevyc64]

---- Sevyc64  (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 oct. 2006 à 11:39
Dsl, j'avais pas vu le P=,

Evidenment losrque la boucle est finie, P = result
Et j'aurais très bien pu utiliser P à la place de résult d'ailleurs

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
vivelovalie Messages postés 2 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 25 octobre 2006
25 oct. 2006 à 13:44
Merci beaucoup pour la rapidité de ta réponse, en plus tu me rassure c'est plus ou moins la formule que j'avais envisagé (ouf !!! )
cependant je continue de t'embetter encore un peu ...

Que ve tu dire par " formule C/ (1 +  R )^ k  + F/ (1 +  R )^ n est à proiri correcte au niveau syntaxe de vb" ?
Est-ce que Vb ne comprend pas ce type de formule et dans ce cas à quoi devrait ressembler mon calcul ?

merci

vivelovalie
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 oct. 2006 à 14:03
Si justement, telle qu'elle est écrit il va la comprendre (à supposer que C, R, et F sont des variables), c'est une formule relativement simple

le symbole de la division est bien \,
celui de l'exposant est aussi ^

elle est correctement traduite.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Rejoignez-nous