Thread: Solver and VBA
View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Jon Peltier Jon Peltier is offline
external usenet poster
 
Posts: 6,582
Default Solver and VBA

I added the following Application.Run
"Solver.xla!MenuUpdate" at the beggining of the code but
the problem was not solved. Any suggestions? Since it worked on the
first part of the code, why it still exists in the second part of the
code?


No, you added Application.Run "Solver.xla!Auto_Open" to the first part.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
http://PeltierTech.com
_______


"zarasandreas" wrote in
message ...
Hello and happy new year. I face some problems while trying to call
Excel solver through VBA in a Windows XP environment. I have tested
the above mentioned problem in both Office XP and Offixe 2003, but
the message "Solver: An unexpected internal error occurred, or
available memory was exhausted" appears
One part of the code that i have created is as follows:

Sub Minimum_Variance_Portfolio()

Application.ScreenUpdating = False
SolverReset
Range("b50006").Select
Set rng = Range(Selection, Selection.End(xlToRight))
SolverOk SetCell:="$B$50012", MaxMinVal:=2,
ValueOf:="0", ByChange:= _
rng.Address
SolverAdd CellRef:=rng.Address, Relation:=3,
FormulaText:="0"
SolverAdd CellRef:="$B$50016", Relation:=2,
FormulaText:="1"
SolverOk SetCell:="$B$50012", MaxMinVal:=2,
ValueOf:="0", ByChange:= _
rng.Address
SolverSolve UserFinish:=True
FrmMinVarianceDescriptive.Show
Application.ScreenUpdating = True

End Sub

Following some instructions found on the web i added at the beginning
of the code the following: Application.Run
"Solver.xla!Auto_Open"

The problem disappeared and the problem was solved.

In another part of my code, the following sub was included:

Sub Frontier()
'Calculates the solutions that correspond to the portfolios
falling on the frontier
Range("b50007").Select
Set rng = Range(Selection, Selection.End(xlToRight))
Step = (WorksheetFunction.Max(rng) - WorksheetFunction.Min(rng)) /
FrontierPoints
Range("b50300").Select
Selection.End(xlToRight).Offset(0, 2).End(xlDown).Offset(4,
0).Select
Selection.Value = "E(Rp)"
Selection.Offset(0, 1).Value = "StDev(p)"
Selection.Offset(1, 0).Value = WorksheetFunction.Min(rng)
Selection.Offset(1, 0).Select
For i = 1 To FrontierPoints + 1
Set rng = Range(Range("b50006"),
Range("b50006").End(xlToRight))
Application.ScreenUpdating = False
SolverReset
SolverAdd CellRef:=rng.Address, Relation:=3,
FormulaText:="0"
SolverAdd CellRef:="$B$50016", Relation:=2,
FormulaText:="1"
RequiredReturn = Selection.Value
SolverAdd CellRef:="$B$50011", Relation:=3,
FormulaText:=RequiredReturn
SolverOk SetCell:="$B$50012", MaxMinVal:=2,
ValueOf:="0", ByChange:= _
rng.Address
SolverSolve
rng.Copy
Destination:=Range("b50300").End(xlDown).Offset(4 + i)
Selection.Offset(0, 1).Value =
Range("b50013").Value
Selection.Offset(1, 0).Value = Selection.Value + Step
Selection.Offset(1, 0).Select
Next i
Selection.ClearContents
End Sub

I added the following Application.Run
"Solver.xla!MenuUpdate" at the beggining of the code but
the problem was not solved. Any suggestions? Since it worked on the
first part of the code, why it still exists in the second part of the
code?

Thanks in advance

ANdreas

------------------------------------------------------------------------
zarasandreas's profile:
http://www.exceljockeys.com/forums/p...ewprofile&u=10
View this thread:
http://www.exceljockeys.com/forums/v...c.php?t=324193