Results 1 to 3 of 3

Thread: I want to use solver in VBA

  1. #1
    Join Date
    Jan 2012
    Posts
    70

    I want to use solver in VBA

    I am using this code to run Solver with VBA. When I run it, there is no solution (or Solver Results dialog box). When I check the Solver under "Tools" and see that the constraints and MaxMinVal are set OK. But there are no entries for "Set Target Cell or "By Changing Cells". What have I done wrong?
    Code:
    Sub RunSolver()
    'Prompt for month number
    currMonth = Application.InputBox(Prompt:="Enter month number:", Type:=2)
    
    'Clear previous Solver settings
    SolverReset
             
        ' Solver Options...
        Call SolverOptions(MaxTime:=100, Iterations:=200, Precision:=0.0001, AssumeLinear _
            :=True, StepThru:=False, Estimates:=1, Derivatives:=1, SearchOption:=1, _
            IntTolerance:=5, Scaling:=False, Convergence:=0.0001, AssumeNonNeg:=True)
      
    
    ' The Solver will run one month at a time. Using the first month as
    ' the starting point, use intOffset to determine which month (column)
    ' to solve for
    
        intOffset = currMonth - 1
    
        ' Set the target cell to a minimum value by changing cells C11:C22 or
        ' an offset of this range
        SolverOk SetCell:=Range("Total_Cost"), MaxMinVal:=2, _
            ByChange:=Range("Ship").Offset(0, intOffset)
        
        ' Add the constraint that Final Inventory = Capacity
        SolverAdd CellRef:=Range("Final_Inventory").Offset(0, intOffset), Relation:=1, _
            FormulaText:=Range("Capacity").Offset(0, intOffset)
        
        ' Add the constraint that Final Inventory = Safety Stock
        SolverAdd CellRef:=Range("Final_Inventory").Offset(0, intOffset), Relation:=3, _
            FormulaText:=Range("Safety_Stock").Offset(0, intOffset)
    
        ' Add the constraint that shipments to customer = customer demand.
        SolverAdd CellRef:=Range("Net_Flow_Cust").Offset(0, intOffset), Relation:=2, _
            FormulaText:=Range("Demand_Cust").Offset(0, intOffset)
        
        ' Add the constraint that shipments from PM = PM Production.
        SolverAdd CellRef:=Range("Net_Flow_PM").Offset(0, intOffset), Relation:=2, _
            FormulaText:=Range("Supply_PM").Offset(0, intOffset)
    
        ' Add the constraint that shipments from WHSE = WHSE Demand.
        SolverAdd CellRef:=Range("Net_Flow_WHSE").Offset(0, intOffset), Relation:=3, _
            FormulaText:=Range("Demand_WHSE").Offset(0, intOffset)
        
        ' Solve the model and keep the final results.
        SolverSolve UserFinish:=False
        'SolverFinish KeepFinal:=1
    
    End Sub

  2. #2
    Join Date
    Aug 2011
    Posts
    695

    Re: I want to use solver in VBA

    I would check two things. The first Use the cell addresses for SetCell and for ByChange, not range objects and the second do SolverOK just before SolverSolve

  3. #3
    Join Date
    Aug 2011
    Posts
    566

    Re: I want to use solver in VBA

    Hi. Don't have an answer, but I would be curious for any feedback if you deleted the following line for debugging ... Call SolverOptions(MaxTime:=100
    Add the constraint that Final Inventory = Capacity
    SolverAdd CellRef:=Range("Final_Inventory").Offset(0, intOffset),
    Relation:=1, ....

    Note that if you really want "Equal", I believe that Relation should be 2, and not 1. Also, make sure your sheet is using A1 reference, and not R1C1 reference for debugging.

Similar Threads

  1. Excel Files - Funcres.xla and solver.xla Missing Error
    By Forrest Ranger in forum MS Office Support
    Replies: 2
    Last Post: 17-02-2012, 02:04 PM
  2. How to use excel solver to solve linear equation in Excel
    By Chini mao in forum Windows Software
    Replies: 1
    Last Post: 08-01-2012, 02:34 PM
  3. Replies: 8
    Last Post: 12-09-2011, 10:45 PM
  4. How to use Solver in Excel 2007
    By EricTheRed in forum Tips & Tweaks
    Replies: 1
    Last Post: 18-05-2011, 04:32 AM
  5. Cannot find solver.xlam
    By KornFlexia in forum Windows Software
    Replies: 4
    Last Post: 27-11-2010, 06:01 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Page generated in 1,713,295,801.10129 seconds with 17 queries