I should of posted the functions. Apparently I was causing a
disconnect because the functions even though (marginally) acceptable
code in VBA were giving me !value# in Excel. Once I gave up on the
functions and just coded the formulas, the program ran correctly.

Munson, Herb wrote:
> If there is explicit or implicit recursion going on, you can get a stack 
> overflow problem.  For example, if EIC calls PC, and PC calls EIC, you can 
> generate a call stack of such depth that you run out of stack space.
>
> I will confess, though, that I have not looked at the code you included in 
> any depth, and I have no idea whether there is, in fact, any recursion here, 
> or what else might be going  on.
>
> -----Original Message-----
> From: excel-macros@googlegroups.com [mailto:[EMAIL PROTECTED] On Behalf Of 
> [EMAIL PROTECTED]
> Sent: Tuesday, September 09, 2008 1:17 PM
> To: MS Excel & VBA Macros
> Subject: $$Excel-Macros$$ Stack error problem
>
>
> My apologies for posting code. What it should do is list how much to
> produce for a given demand over a period. When I try to run this I get
> a message about being out of stack space (28). EIC and PC are
> functions. If anyone has a clue on why I am triggering the stack
> error, please let me know. Thanks
>
> Option Explicit
> Dim Min_cost(10, 101) As Integer, Opt_Prod(10, 101) As Integer,
> Demand(10) As Integer, XStar(10) As Integer
> Public N_Per As Integer, MaxInv As Integer, MaxProd As Integer,
> InitInv As Integer
> Public MinLim As Integer, MaxLim As Integer, LLim As Integer, Hold As
> Integer, InvOld As Integer, InvNew As Integer
> Public I As Integer, II As Integer, J As Integer, K As Integer, Z As
> Integer, Sum As Integer
>
> Sub prod()
>
> N_Per = Cells(1, 2).Value
> MaxInv = Cells(2, 2).Value
> MaxProd = Cells(3, 2).Value
> InitInv = Cells(4, 2).Value
>
> For I = 1 To N_Per
>     Demand(I) = Cells(9, I + 1).Value
> Next I
>
> If Demand(N_Per) <> 0 Then
>     For I = 1 To Demand(N_Per)
>         Min_cost(N_Per, I) = PC(N_Per, Demand(N_Per) - I + 1)
>         Opt_Prod(N_Per, I) = Demand(N_Per) - I + 1
>     Next I
> End If
>
> Min_cost(N_Per, Demand(N_Per) + 1) = 0
> Opt_Prod(N_Per, Demand(N_Per) + 1) = 0
>
> For II = 1 To (N_Per - 1)
>  I = N_Per - II
>  Sum = 0
>  For J = I To N_Per
>     Sum = Sum + Demand(J)
>  Next J
>  Sum = Sum + 1
>  If Sum >= MaxInv + 1 Then
>     MinLim = MaxInv + 1
>  Else
>     MinLim = Sum
>  End If
>  For K = 1 To MinLim
>     If Demand(I) - K + 1 <= 0 Then
>         LLim = 0
>         Min_cost(I, K) = EIC(I, K - Demand(I) - 1) + Min_cost(I + 1, K
> - Demand(I))
>         Opt_Prod(I, K) = 0
>     Else
>         LLim = Demand(I) - K + 1
>         Min_cost(I, K) = PC(I, LLim) + EIC(I, 0) + Min_cost(I + 1, 1)
>         Opt_Prod(I, K) = Demand(I) - K + 1
>
>     End If
>     LLim = LLim + 1
>     If MaxProd > Sum - K And Sum - K > Demand(I) + MaxInv + 1 - K Then
>         MaxLim = Demand(I) + MaxInv + 1 - K
>     ElseIf MaxProd > Sum - K And Sum - K <= Demand(I) + MaxInv + 1 - K
> Then
>         MaxLim = Sum - K
>     ElseIf MaxProd <= Sum - K And MaxProd > Demand(I) + MaxInv + 1 - K
> Then
>         MaxLim = Demand(I) + MaxInv + 1 - K
>     ElseIf MaxProd <= Sum - K And MaxProd <= Demand(I) + MaxInv + 1 -
> K Then
>         MaxLim = MaxProd
>     End If
>     If LLim - 1 <> MaxLim Then
>         For Z = LLim To MaxLim
>         Hold = PC(I, Z) + EIC(I, K + Z - Demand(I) - 1) + Min_cost(I +
> 1, K + Z - Demand(I))
>         If Min_cost(I, K) > Hold Then
>             Min_cost(I, K) = Hold
>             Opt_Prod(I, K) = Z
>         End If
>         Next Z
>     End If
>
>     Next K
>  Next II
>  XStar(1) = Opt_Prod(1, InitInv + 1)
>  InvOld = InitInv + 1
>  For I = 2 To N_Per
>  InvNew = XStar(I - 1) - Demand(I - 1) + InvOld
>  XStar(I) = Opt_Prod(I, InvNew)
>  InvOld = InvNew
>  Next I
>  Cells(12, 2).Value = Min_cost(1, InitInv + 1)
>  For J = 1 To N_Per
>  Cells(13, J + 1).Value = J
>  Cells(14, J + 1).Value = XStar(J)
>  Next J
> End Sub

--~--~---------~--~----~------------~-------~--~----~
Visit the blog to download Excel tutorials at 
http://www.excel-macros.blogspot.com

To post to this group, send email to excel-macros@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/excel-macros?hl=en

Visit & Join Our Orkut Community at 
http://www.orkut.com/Community.aspx?cmm=22913620

Visit the blog to download Excel tutorials at 
http://www.excel-macros.blogspot.com

To Learn VBA Macros Please visit http://www.vbamacros.blogspot.com

To see the Daily Excel Tips, Go to:
http://exceldailytip.blogspot.com
-~----------~----~----~----~------~----~------~--~---

Reply via email to