Question

Je suis en train d'ajouter de nouvelles contraintes à ma solution de solveur VBA Excel et je suis un comportement bizarre devient quand je lance le code. Je veux faire ce qui suit pour un problème de minimisation et je suis un peu de difficulté:

Les deux leviers qui sont réglés doit être <= 35%, mais quand j'ajoute la contrainte:

SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35"
SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35"

Ils se sont fixés automatiquement à 35% lorsque l'idée est pour ceux-ci soient aussi bas que possible. Sans cette contrainte les cellules elles-mêmes ne fixent en dessous de 35% pour les problèmes que je suis contre la validation, donc je sais que la solution optimale est inférieure à 35%.

Aussi je me demandais s'il y a un moyen de faire en sorte que: a) les cellules sont optimisées par incréments de 5%, et que la valeur de fin ne comprend pas les décimales. à-dire 10,00% au lieu de 10,23%

Désolé pour la question de longue haleine, je vous remercie de toute aide que je reçois.

Voici le code complet:

    Private Sub CommandButton2_Click()

Dim i As Integer


i = 2

For i = 2 To 5

   Range("$C$14").Value = Application.Workbooks("test_model_2.xls").Worksheets("All Models").Cells(i, 2).Value
    SolverReset
    SolverAdd CellRef:="$F$70", Relation:=3, FormulaText:="5000"
    SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35"
    SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35"
    SolverOk SetCell:="$F$70", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$39:$C$40"
    SolverSolve True
   MsgBox "i is:" & i

Next i

End Sub
Était-ce utile?

La solution

Voir: http://msdn.microsoft .com / fr-fr / bibliothèque / aa272233 (v = office.10) .aspx

Vous utilisez relation: = 2, ce qui équivaut à "=". Vous devez utiliser 1 (<=)

En ce qui concerne l'obtention de votre solution au 0,05 le plus proche, vient de mettre en place d'autres cellules qui se nourrissent dans les cellules « pour cent », et les ont contraints à des valeurs entières.

Par exemple:

A1 = 7           (set solver to change this, and constrain to integer)
B1 = A1 * 0.05   (your percent cell, constrain to <=0.35)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top