Hallo,
hab mal eine Frage zu dem Solver. Und zwar möchte ich einen Wert über den Solver errechnen, ohne dass dieser auf das Worksheet zugreifen soll. Alle Variablen sind im Code von VBA hinterlegt und Excel müsste somit theoretisch eine Lösung finden, tut es aber nicht.
Also ich habe als Formeln in folgender Art, die im VBA-Code errechnet werden:
a= k * ...
b= 1/k...
c = k²...
somit sind alle abhängig vom Wert k. Nun möchte ich einen Wert für k finden bei dem die untere Variable 'Summe' 0 wird:
Summe = a+b-c
Wenn ich nun aber
SolverOk setcell:=Summe, MaxMinVal:=3, ValueOf:=0, ByChange:=k, Engine:=1, EngineDesc:="GRG Nonlinear"
solversolve (True)
eintrage, verändert Excel nicht mal den Wert k, er bleibt also immer auf dem Wert, in dem er vorher war. Egal ob ich nun doch eine Verlinkung zum Worksheet mache oder aber den Wert für k im VBA-Code vorprogrammiere. Alle haben dieselbe Klasse 'Double'.
Was muss ich verändern? Und wofür steht das Feld MaxMinVal? Achja, und mir ist noch aufgefallen, dass komischerweise die Berechnungsoption zu manuell umgestellt wird, obwohl ich dieses nicht in den VBA-Code eingebaut habe ...
Den ermittelten Wert möchte ich dann über die Funktion 'Msgbox k' ausgeben.
Danke im Voraus.
P.S.: Es funktioniert, wenn ich die Formeln im Worksheet hinterlege und dann eben die Zellreferenz auf Summe und k setze ...
|