Home |
Search |
Today's Posts |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Rob, et al,
Has this problem been debugged (as I have exactly the same one with Excel 2003)? If I may, I also paste my code... Function Run_solver(target) Application.Calculation = xlManual If Not SOLVER.AutoOpened Then SOLVER.Auto_open SolverReset SolverOptions MaxTime:=120, Iterations:=32767, Precision:=0.0000001, _ AssumeLinear:=False, StepThru:=True, Estimates:=1, Derivatives:=1, _ SearchOption:=1, IntTolerance:=1, Scaling:=False, Convergence:=0.0001, _ AssumeNonNeg:=True SolverOk SetCell:="$G$5", MaxMinVal:=2, ValueOf:="0", ByChange:=Range("D2").Resize(Range("A1"), 1) ' A1 is less or equal to 100 SolverAdd CellRef:="$G$3", Relation:=2, FormulaText:=target SolverAdd CellRef:="$E$2", Relation:=2, FormulaText:="1" SolverAdd CellRef:="$G$5", Relation:=3, FormulaText:="0" Range("G2") = SolverSolve(True, showref:="SolverStepThru") Select Case Range("G2") Case 0, 1, 2 ' Solver found a solution SolverFinish 1 Case Else ' Keep results and move on, use 2 to keep original values SolverFinish 2 End Select End Function ----------------------------------------------- Function SolverStepThru(Reason As Integer) SolverStepThru = Reason 1 End Function "Dana DeLouis" wrote: ActiveWorkbook.Names.Add Name:="payfclearbin", _ RefersToR1C1:=.Range(.Range("AA1").End(xlDown) ByChange:="payfclearbin" Hi. I'm having a problem with my news reader, so hopefully this isn't posted twice. These are probably not the issue, but I'll throw it out anyway. When you write code with .End(xlDown), there is no error check. Solver is limited to 200 changing cells. So, as it stands, one can not verify how many cells are set. Sheets("Transaction Summary").Activate Most likely not a problem here, but certain operations with solver will cause an error if the workbook, or worksheet name has a space in it. Try renaming your workbook/worksheet by removing any space characters. SolverAdd CellRef:="$AE$1", Relation:=2, FormulaText:="$AD$1" You are trying to set two complex functions equal to each other. In general, it is sometimes best to have a constant on the right hand side. Instead of f(x) = f(y) it can sometimes be better to re-write it as f(x) - f(y) = 0. SolverOk SetCell:="$AF$1", MaxMinVal:=2, ValueOf:="0", As a note, you can drop the "ValueOf" since it is ignored in a Min problem. Application.DisplayAlerts = False Try removing "Application.DisplayAlerts" for now while testing. Again, just some ideas. Good luck. -- HTH :) Dana DeLouis robs3131 wrote: Hi Dana, I removed the "R1C1", but that didn't fix the error. What's wierd is that I just realized that as soon as I click on the button (which calls code that eventually calls the Solver code), if I then click on another application, Excel freezes up. I have no idea why this is happening. The code is lengthy, but it starts as follows - please let me know if you have any idea why this is happening. Private Sub transclearbyaff_Click() Dim cjmod As Integer Dim linkperfmod As Integer Dim strproceed As String Application.ScreenUpdating = False ThisWorkbook.Activate |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
"No RETURN() or HALT() function found on macro sheet." | Excel Worksheet Functions | |||
No RETURN() or HALT() function found on macro sheet | Excel Discussion (Misc queries) | |||
Beginner help! error no return() or halt() function found on macro sheet | Excel Programming | |||
"unexpected error" when running solver from a macro | Excel Programming | |||
"unexpected error" when running solver from a macro | Excel Programming |