17.11.2016, 11:22
Hallo Leute,
Ich möchte gerne meinen VBA-Solver ergänzen, nur habe ich leider keine Idee wie das geht. Mein aktuelle Solver sieht so aus:
Sub VerschVerbund()
For i = 4 To 103
SolverReset
OBJSTRING = "$O$" & i
VARSTRING = "$L$" & i
SolverOk SetCell:=Range(OBJSTRING), MaxMinVal:=3, ValueOf:=0, ByChange:=(VARSTRING)
SolverOptions Precision:=0.000001
SolverSolve UserFinish:=True
Next
End Sub
Nun habe ich die Zelle "B42" als zusätzliche Variable (Wert zwischen 0-2), die vor jedem Solver-Durchgang geändert werden muss. Die Zelle beeinflusst das Resultat der ganzen Tabelle und muss so angepasst werden, damit der Wert in "E44" dem Wert in "N103" entspricht. Eine Präzision von 0.1 ist dabei ausreichend.
Also muss der Solver folgendes tun: ändern von "B42" -> Solver -> Vergleich "E44" mit "N103" -> wenn ok Finish, wenn nicht -> ändern von "B42" und wieder von Beginn
Ich hoffe ich habe mich verständlich ausgedrückt :)
Danke schonmal für die Hilfe.
Tschibolli
Ich möchte gerne meinen VBA-Solver ergänzen, nur habe ich leider keine Idee wie das geht. Mein aktuelle Solver sieht so aus:
Sub VerschVerbund()
For i = 4 To 103
SolverReset
OBJSTRING = "$O$" & i
VARSTRING = "$L$" & i
SolverOk SetCell:=Range(OBJSTRING), MaxMinVal:=3, ValueOf:=0, ByChange:=(VARSTRING)
SolverOptions Precision:=0.000001
SolverSolve UserFinish:=True
Next
End Sub
Nun habe ich die Zelle "B42" als zusätzliche Variable (Wert zwischen 0-2), die vor jedem Solver-Durchgang geändert werden muss. Die Zelle beeinflusst das Resultat der ganzen Tabelle und muss so angepasst werden, damit der Wert in "E44" dem Wert in "N103" entspricht. Eine Präzision von 0.1 ist dabei ausreichend.
Also muss der Solver folgendes tun: ändern von "B42" -> Solver -> Vergleich "E44" mit "N103" -> wenn ok Finish, wenn nicht -> ändern von "B42" und wieder von Beginn
Ich hoffe ich habe mich verständlich ausgedrückt :)
Danke schonmal für die Hilfe.
Tschibolli