View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Dana DeLouis Dana DeLouis is offline
external usenet poster
 
Posts: 947
Default variables in excel solver for vba

Hi. I don't quite follow, so here's something very general.
I find it very hard to work w/ strings in this fashion, as you've
discovered.
You may have better luck with the following format..
Range(Cells(r,c), Cells(r2,c2))
Where your r's & c's can be your variables.
As a side benefit, Excel versions since 97 work with the A1 notation, and
will not work with R1C1 formatting.

Here's a very basic idea...

'// Example:
numProducts = 5
numSites = 7

SolverOk Cells(numProducts + 3, 2), 2, , Range(Cells(numProducts + 4, 2),
Cells(numProducts + 20, 2))

SolverAdd Range(Cells(2, numSites + 3), Cells(numProducts + 1, 2)), 2, 1

If you wish to work with String addresses instead, you can do something like
this

Dim ThisAddress
ThisAddress = Range(Cells(2, numSites + 3), Cells(numProducts + 1,
2)).Address

Then add the string 'ThisAddress' to your Solver program.
--
HTH. :)
Dana DeLouis
Windows XP, Office 2003


wrote in message
ups.com...
how can you use variables in excel solver? i don't want the changing
cell always to be "R1C1" i want it to be something that will change.
this is what i have so far:

SolverReset

SolverOk SetCell:="R & CStr(numProducts + 3) & C2", MaxMinVal:=2,
ValueOf:="0", _
ByChange:="R & CStr() & C & CStr() & :R & CStr() & C & CStr()"

SolverAdd CellRef:= _
"R2 & C & CStr(numSites + 3) & :R & CStr(numProducts + 1) & C &
CStr(numSites + 3)", Relation:=2, FormulaText:="1" 'every product must
be bought
SolverAdd CellRef:= _
"R & CStr(numProducts + 2) & C2:R & CStr(numProducts + 2) & C &
CStr(numSites + 1)", Relation:=5, FormulaText:="binary" 'binary
constraint visit or not
SolverAdd CellRef:= _
"R2 & C & CStr(numSites + 2) & :R & CStr(numProducts + 1) & C &
CStr(numSites + 2)", Relation:=3, FormulaText:="1"

SolverSolve UserFinish:=False
SolverFinish KeepFinal:=1

Can i use concatenation like that? am i just writing it wrong? vba
runs my sub without any errors so i'm really confused...

any ideas would be greatly appreciated...thanks!