View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
M100C M100C is offline
external usenet poster
 
Posts: 1
Default Iterative solving using VBA ...

All,
This is more of a general programming question, but I am posting to this
group to see if I can get help with the answer.

I have a public function that sums the future values (fv) of investments,
using a given rate of return (r). For example, the syntax is "fv(r)", where
"fv(0.03)" would return the future values at an annual growth rate of 3%.

Now, suppose the value returned is 30,000 but the actual value I was
expecting was 50,000 (val). I need a procedure to: 1) increment r, 2) pass
it to fv, and 3) iterate through 1 and 2 until the fv function returns a
value "close to" val.

What I have so far (see below) works well, but is ugly. Is there a more
elegant way to do this iteration?

Thanks,
Chris

VBA:
'Start by guessing at 3%
s = 0.03

If fv(s) < val Then
Do
'increment by whole percents
s = s + 0.01
Loop Until fv(s) val

'oops ... too far ... back out a percent
s = s - 0.01

Do
'increment by a tenth percent
s = s + 0.001
Loop Until fv(s) val

'oops ... too far ... back out a tenth percent
s = s - 0.001

Do
'increment by a hundredth percent
s = s + 0.0001
Loop Until fv(s) val

'oops ... too far ... back out a hundredth percent
s = s - 0.0001

Else
' Code here if guess is too high
End If