Clever-Excel-Forum

Normale Version: VBA Solver mit zusätzlicher Variable und Zielwert eränzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
Hallöchen,

Du könntest z.B. nach dem For eine Zeile einfügen und dort B42 ändern.
Vor dem Next fügst Du auch eine Zeile ein wo DU beide Werte vergleichst und wenn ok, dann Exit For.

Falls Du zu jedem i die 3 Werte in B42 haben willst, dann könntest Du das über eine weitere Schleife lösen, im Prinzip so:
Code:
For i = 4 to ...
For J = 0 to 2
  Range("B42").Value=j
  solvercode ....
  if ... Then Exit for
Next
Next
hi danke für die Hilfe. so hats geklappt