VBA Solver nimmt Nebenbedingung nicht an
29.10.2019 23:41:09
Christian
Ich möchte über ein Makro den Solver verwenden, sodass er mir einen Wert in der Zelle maximiert.
Der solver soll dabei 2 Zellen verändern und eine Nebenbedingung einhalten.
Jedoch verwendet der solver die Nebenbedingung nicht.
Option Base 1
Sub SolvGewichtungen()
'Maximiert die Gewichtungsanteile des Portfolios.
'Rendite Portfolio minus Rendite Benchmark -> max! .
'Variablen benennen.
Dim Gew As Worksheet
Set Gew = ThisWorkbook.Worksheets("Gewichtungen")
SolverReset
SolverAdd CellRef:=Gew.Cells(9, 6), Relation:=2, FormulaText:="1"
SolverOk SetCell:=Gew.Cells(9, 4), MaxMinVal:=1, ValueOf:=0, ByChange:=Gew.Range(Gew.Cells( _
9, 7), Gew.Cells(9, 8))
SolverSolve (True)
End Sub
Wenn ich bei der Nebenbedingung den Wert auf eine Zahl zwischen 0.5 und 0.99 setze, oder größer als 1 dann wird die Nebenbedingung ausgeführt.
Die Nebenbedingung ist die Summe aus zwei Zahlen, welche immer 1,0 sein muss.
Im Angehängen Bild ist die Excel Oberfläche mit den Daten zu sehen.