Sinds lange tijd weer hobby'en en terug op dit fantastische forum.
Ben bezig met een loop ten behoeve van een financiële berekening.
Bereken een annuïteit en dan de totale betaalde rente over de hele looptijd. Dit is me gelukt in VBA waar ik blij mee ben.
Nu wil ik simuleren en een loop met meerdere hoofdsommen. Ook dit lukte verrassend.
Echter doet hij de berekening goed maar de bijbehorende hoofdsom geeft hij verkeerd weer. Dit is misschien wat financieel, maar even technisch, waarom gaat in onderstaande de loop in de PMT de berekende hoofdsom wel goed. (Hij pakt ondanks de "u" loop, waar de hoofdsom naar 0 gaat toch de oorspronkelijke hoofdsom + 500 telkens in de "h" loop) maar in de msgbox geeft hij niet de hoofdsom weer maar enkel 500.
Waarom pakt die in de formule wel de goede maar in de Msgbox niet!?
Ben bezig met een loop ten behoeve van een financiële berekening.
Bereken een annuïteit en dan de totale betaalde rente over de hele looptijd. Dit is me gelukt in VBA waar ik blij mee ben.
Nu wil ik simuleren en een loop met meerdere hoofdsommen. Ook dit lukte verrassend.
Echter doet hij de berekening goed maar de bijbehorende hoofdsom geeft hij verkeerd weer. Dit is misschien wat financieel, maar even technisch, waarom gaat in onderstaande de loop in de PMT de berekende hoofdsom wel goed. (Hij pakt ondanks de "u" loop, waar de hoofdsom naar 0 gaat toch de oorspronkelijke hoofdsom + 500 telkens in de "h" loop) maar in de msgbox geeft hij niet de hoofdsom weer maar enkel 500.
Waarom pakt die in de formule wel de goede maar in de Msgbox niet!?
Code:
Sub Financiele_analyse()
'=PMT(,,)
'=PV()
'=RATE()
'=NPER()
hoofdsom = [b2]
rente = [c3]
aantal_termijnen = [c4]
For h = 1 To 10
'Voor de berekening pakt hij de goede hoofdsom
'De msgbox niet dan pakt hij na de eerste juiste hoofdsom alleen de 500
termijn_bedrag = Pmt(rente, aantal_termijnen, [U][B]hoofdsom[/B][/U]) * -1
MsgBox [B][U]hoofdsom[/U][/B]
For u = 1 To aantal_termijnen
a = rente * hoofdsom
b = termijn_bedrag - a
hoofdsom = hoofdsom - b
x = a + x
Next u
hoofdsom = hoofdsom + 500
[g1].End(xlDown).Offset(1, 0) = x
Next h
Bijlagen
Laatst bewerkt: