Hallo Forum,
Ich habe in VBA eine Mehrfachoptimierung durch eine FOR Schleife realisiert mit folgendem Code (Beipiel mit 5 Jahren- später soll das Problem größer werden):
1 2 3 4 5 6 7 8 9 10 11 12 | Sub Solve()
Dim i As Integer
Const imax = 5
For i = 5 To (5 + imax)
Cells(2, i). Select
SolverOk SetCell:=Cells(2, i), MaxMinVal:=2, ValueOf:= "0" , ByChange:=Range(Cells(10, i), Cells(22, i))
SolverSolve
Next i
End Sub
|
Ich möchte nun meine Zielvariablen an eine Nebenbedingung knüpfen. Wenn in den entsprechenden Bezugszellen der Zielvariablen eine 0 steht (oder x oder etwas anderes), soll diese Zelle NICHT als Zielvariable gelten.
Beispiel: In der Tabellenzelle Cells (12,6) steht eine 0, dann soll der Solver in der Rechnung für i=6 als Zielvariablen nur den Bereich ByChange:=Range(Cells(10,6),Cells(11,6)) und Range(Cells(13,6),Cells(22,6)) nehmen. Zelle (12,6) soll nicht in der Optimierung berücksichtige werden. Ich hoffe mein Problem ist verständlich beschrieben.
Wie würde ich diese Bedingung in VBA schreiben? Hat jemand eine Idee?
Grüße,
Annita
|