Home |
Search |
Today's Posts |
#10
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi. Just some ideas. Since we don't actually see it listed in your
code directly, does LoadChangeValuesforallnonZero actually use the SolverOk function? SolverOk SetCell:="A1", MaxMinVal:=3, ValueOf:="0", ByChange:="B1" The reason I question it is that if you are "Loading" it from a saved location, the other restraints would have already been loaded with the same command. One technique is to pause the macro just before the SolverSolve command. Then, switch to your spreadsheet, and pull up Solver. Is your Solver form filled in properly at this point? For now, I would try to debug part of the program with something like the following. Debug.Print "= = = = = = = = = = " Answer = SolverSolve(True, "ShowTrial") Select Case Answer Case 0 To 2 Debug.Print "Answer ok: " & answer SolverFinish KeepFinal:=1 Case Else Debug.Print "Answer NOT ok:" & answer End Select Debug.Print "= = = = = = = = = = " Debug.Print I would include a debug here as well... Function ShowTrial(Reason As Integer) Debug.Print "ShowTrial: " & Reason Sometime everything works quite fine... From experience, this can sometimes be a flag that you are using discontinuous functions in your spreadsheet model. Is your model using functions like Max(), Min(), IF(), Abs(), etc? If you are, you will have to re-write the problem to avoid these functions. - - - HTH :) Dana DeLouis axel wrote: Thanks again! I am still extremely puzzeled because my solver macro behaves very strangely indeed. Sometime everything works quite fine, including the "live update" and sometimes the macro still does it's job, but no output whatsoever is displayed. (As if screenupdate was toggled off, which is not the case and as you pointed out pointless in the solver model anyhow). I run exactley the same macro without changing a line, and sometimes it works sometime it doesnot... On top sometime it just proceedes regardless what I am doing in other windows (eg. an odd Internet explorer Window) sometimes it works until i click on anything (outside Excel). Then it cancels and displays an error message: "No Return() or Halt) dunction found on macro sheet. Again the revisded code: Sub FitAllNonZerosMacro() starttime = Time Windows("3__Spectrum_Fitter.xls").Activate Sheets("Fitting").Activate ByChangeValues = "" SolverReset loadminiumrestraints loadmaximumrestraints LoadChangeValuesforallnonZero SolverOptions MaxTime:=16000, Iterations:=25000, Precision:=0.00000001, IntTolerance:=0.00000001 SolverOptions StepThru:=True SolverOptions Scaling:=True Range("T:V").ClearContents Cells(2, 21) = Time Cells(3, 20) = 0 answer = SolverSolve(True, "ShowTrial") SolverFinish KeepFinal:=1 End Sub Function ShowTrial(Reason As Integer) ShowTrial = False Iterationcounter = Cells(3, 20) Iterationcounter = Iterationcounter + 1 Cells(3, 20) = Iterationcounter Cells(3 + Iterationcounter, 22) = Range("J13") Cells(3 + Iterationcounter, 21) = Time - Cells(2, 21) End Function I guess the Solver model as good as it might be is just poorly implemented in Excel. (I Run Excel 2003 SP3 with Windows Vista) Maybe there is a hotfix or Update for the Solver somewhere? (Could not find it) Happy new year! Axel |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Solver VBA - Defining Solver Options | Excel Programming | |||
referencing Solver.xlam vs. Solver.xla - 2007 vs. 2003 | Excel Programming | |||
How to replace Excel solver with some free solver codes in Excel V | Excel Programming | |||
Interesting Solver problem (Solver encounters an error) | Excel Discussion (Misc queries) | |||
Resetting Solver Manually to Fix Solver Bug | Excel Programming |