Problem solver call from vb6
I have trouble getting a solver call to work, but another call does
work. Let me show you what I have so far. On a form I have two solver
calls, the first one works but the second doesn't. There is no error
(at least none that I can recall) , it's just that the solver doesn't
run, meaning the cell $A$150 has the same value at the end as it had in
the beginning. Even debugging the code doesn't give me any clues. I
calculated everything by hand and I am pretty sure that there is a
valid solution for this equation.
What am I doing wrong?
The first one( this one works)
'//Iteration algorithm for determening the inner dia meter of the
expanded liner by using the Solver
'//Creating a temporary changing cell
Sheets("outputExpansion").Cells(150, 1)
=(Sheets("InputValues").Cells(13, 2) - 2 *
Sheets("InputValues").Cells(14, 2)) * 25.4
'//Creating a temporary target cell
If m_rho = (-2 / 3) Then
Sheets("outputExpansion").Cells(149, 1).Formula = "=$A$150 +
(2* InputValues!B14 * 25.4) * ($A$150 / ((InputValues!B13 - 2
*InputValues!B14))* 25.4) ^ (-2 / 3) - ((InputValues!B4 - 2 *
InputValues!B2) * 25.4)"
Else
Sheets("outputExpansion").Cells(149, 1).Formula = "=$A$150 +
(2* InputValues!B14 * 25.4) * ($A$150 / ((InputValues!B13 - 2
*InputValues!B14))* 25.4) ^ (-1) - ((InputValues!B4 - 2
*InputValues!B2) * 25.4)"
End If
'//Actual Solver procedure
Sheets("outputExpansion").Select
solver.Auto_open
SolverOk SetCell:="$A$149", MaxMinVal:=3,
ValueOf:="0",ByChange:="$A$150"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
solver.Auto_close
'//The inner dia meter of the liner after the Solver procedure
de = Sheets("outputExpansion").Cells(150, 1)
'//Delete the temporary cells
Sheets("outputExpansion").Cells(150, 1).Delete
Sheets("outputExpansion").Cells(149, 1).Delete
'//================================================== ==========================
Now the second one, where I need to know the value of $A$150, B9 =
0.003, B7= 0.19 , B3 = 0.26, B2 = 0.28
'// Maximum expansion ratio for rho = -2/3
Sheets("outputExpansion").Cells(150, 1) = 0.0001
Sheets("outputExpansion").Cells(149, 1).Formula = "=((InputValues!B9
+$A$150)/(1.52765618*
InputValues!B7))^InputValues!B7*(2.71828182845904^ (InputValues!B7
-($A$150 + InputValues!B9)/1.52765618))- ((InputValues!B3
*25.4)/(InputValues!B2 * 25.4)) "
'//Actual Solver procedure
Sheets("outputExpansion").Select
solver.Auto_open
SolverOk SetCell:="$A$149", MaxMinVal:=3,
ValueOf:="0",ByChange:="$A$150"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
solver.Auto_close
'//The inner dia meter of the liner after the Solver procedure
delta_exp_ratio = Sheets("outputExpansion").Cells(150, 1)
'//Delete the temporary cells
Sheets("outputExpansion").Cells(150, 1).Delete
Sheets("outputExpansion").Cells(149, 1).Delete
'//================================================== =======
|