Solver berechnet nicht wenn er aus einem fremden..
27.05.2005 17:06:16
Horst
... Tabellenblatt ausgerufen wird !
Ich moechte eine Solverberechnung von einem seperaten tabellenblatt (eingabeblatt)aus aufrufen.
Dort gebe ich bestimmte werte ein mit den der solver auf einem zweiten sheet eine berechnung durchführen soll.
Im prinzip moechte ich das berechnungssheet (berechnungsblatt) verbergen damit die formeln die sich dort verbergen nicht geaendert werden koennen
Das Makro im sheet berechnungsblatt wird auch gestartet: (durch ein event im sheet eingabeblatt)
----------------------------------
Sub SolverStarten()
SolverOk SetCell:="$G$5", MaxMinVal:=1, ValueOf:="0", ByChange:="$G$5"
SolverDelete CellRef:="$B$5", Relation:=2, FormulaText:="$J$4"
SolverAdd CellRef:="$B$5", Relation:=2, FormulaText:="$J$4"
SolverOk SetCell:="$G$5", MaxMinVal:=1, ValueOf:="0", ByChange:="$G$5"
SolverSolve userfinish:=True
MsgBox "Solver berechnung"
End Sub
-----------------------------------
Der solver wird angeschuppst, das kann ich erkennen wenn ich userfinish auskommentiere.
Er sagt mir auch das die berechnung ok gelaufen ist.
Aber er rechnet nicht mit den werten die ihn über geben werden.
Das heisst, dass das ergebnis immer das gleiche ist.
Erst wenn ich auf die das berechnungsblatt gehe und den solver per hand starte aendern sich auch die werte.
Auch wenn ich das makro im berechnungsblatt von hand starte aendern sich die werte.
Die frage jetzt warum?
Was passiert oder was passiert nicht?
Warum rechnet er nicht mit den neuen werten?
Ich habe auch schon ueberprueft ohne das sich ich auf das berechnungsblatt gegangen bin ob sich die werte die ich aus dem eingabeblatt uebergeben habe im berechnungsblatt in den entprechenden zellen befinden.
Und zwar bevor der solver per makr gestartet wird.
Alles o.k.
Aber er rechnet nicht mit diesen werten sondern mit den alten werten.
Gibt es noch soetwas wie ein refresh? das ixh vorher machen muss?
Wer weiss rat?
Gruss
Horst