I am trying to loop a solver command for VBA Excel, and getting the error message regarding the variables and conditions in the model. The idea of the model is to find a range of debt and equity financing so that the cash balance is zero, and the debt and equity components meet certain covenants (that work as bounds in the solver run).
Here is my code:
Sub Debt_Capital_Balancing()
Application.ScreenUpdating = False
Dim Early_Repmnt As String, CashBeforeSolver As Variant, CED As Variant, _
DR As Variant, CC As Variant, TW As Single, NDE As Single, DE As Single, W As Single
K = Range("Forecast_periods").Count
Range("Debt_Received, Debt_Early_Repayment, RE_Distribution, _ CC_APIC_Change").ClearContents
For i = 1 To K
CashBeforeSolver = Abs(Range("Cash_Excess_Deficit").Cells(1, i).Value)
CED = Range("Cash_Excess_Deficit").Cells(1, i).Value
DR = Range("Debt_Received").Cells(1, i).Value
CC = Range("CC_APIC_Change").Cells(1, i).Value
TW = Range("Target_WACC").Cells(1, i).Value
NDE = Range("Net_Debt_To_EBITDA").Cells(1, i).Value
DE = Range("D_E").Cells(1, i).Value
W = Range("WACC").Cells(1, i).Value
SolverReset
SolverOk SetCell:=CED, MaxMinVal:=3, ValueOf:=0, ByChange:="DR,CC", Engine:=3, EngineDesc:="Evolutionary"
SolverAdd cellRef:=DR, Relation:=3, FormulaText:=0
SolverAdd cellRef:=CC, Relation:=3, FormulaText:=0
SolverAdd cellRef:=DR, Relation:=1, FormulaText:=CashBeforeSolver
SolverAdd cellRef:=CC, Relation:=1, FormulaText:=CashBeforeSolver
SolverAdd cellRef:=NDE, Relation:=1, FormulaText:="Target_Net_Debt_To_EBITDA"
SolverAdd cellRef:=DE, Relation:=1, FormulaText:="Target_D_E_Ratio"
SolverAdd cellRef:=W, Relation:=1, FormulaText:=TW
SolverOptions MaxTime:=0, Iterations:=0, Precision:=0.00001, _
Convergence:=0.0001, StepThru:=False, Scaling:=True, AssumeNonNeg:=False, Derivatives:=1
SolverOptions PopulationSize:=100, RandomSeed:=0, MutationRate:=0.075, _
Multistart:=False, RequireBounds:=True, MaxSubproblems:=0, MaxIntegerSols:=0, _
IntTolerance:=0.1, SolveWithout:=False, MaxTimeNoImp:=200
SolverSolve
Next i
End Sub
I guess I incorrectly refer to the variables in the solver pattern. Can someone please help me with that? May be there are some other ways to refer to the changing cells and dynamic conditions?
Many thanks,
Yury