Excel Solver Grenzwertbericht zerstört Sheet aus dem er generiert wird?
Hallo zusammen,
ich habe folgendes Problem:
Ich habe eine Excel Datei erstellt, welche mit dem Solver eine Kostenfunktion unter gewissen Nebenbedingungen minimieren soll. Der Solver wird über VBA angesteuert und spuckt dann auch das korrekte Ergebnis aus, alles kein Problem. ABER wenn ich dann die Solver Lösung akzeptieren will und den Grenzwertbericht anklicke um diesen zu generieren wird die Spaltenbreite meines Sheets total verändert und auch die Werte aus einigen Zellen gelöscht. Bei den anderen Berichten (Antwort und Sensitivität) passiert dies nicht.
Hatte einer das gleiche Problem bereits oder wüsste eine Lösung hierzu?
Meine einzige Idee wäre, ein kurzes Makro zu programmieren, welches die ursprüngliche Spaltenbreite einstellt und die gelöschten Werte wieder einträgt... diese Lösung finde ich aber leider bisschen unzufriedenstellend.
Vielen Dank und liebe Grüße
Manu
1 Antwort
Das VBA Programm ist vermutlich an der falschen Tabelle dran und manipuliert das aktive Blatt. Wenn man den Quelltext sehen könnte, kann ich dir helfen. Es fehlt warscheinlich nicht viel, nur eine Zeile Code.
Ein Makro zu verwenden um die Schäden zu reparieren ist nicht sinnvoll, da sollte man schon das VBA Programm anpassen.
Oje du verwendest den Solver, den hab ich glaub ich gar nicht in meiner Excelversion. Im Quelltext sehe ich allerdings nichts was die Spaltenbreite ändert.
Leider habe ich noch nie mit diesem Solver zu tun gehabt.
Hi, danke für die Antwort. Ich habe gerade den VBA Code gelöscht und dann den Solver von Hand konfiguriert und trotzdem tritt das gleiche Problem auf, ich weiß also nicht ob das der Grund ist... Aber hier ist der Code:
Private Sub CommandButton1_Click()
SolverReset
SolverOk SetCell:="$D$6", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$D$5", Relation:=2, FormulaText:="$D$9"
SolverOk SetCell:="$D$6", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$D$3", Relation:=3, FormulaText:="$D$10"
SolverOk SetCell:="$D$6", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$D$3", Relation:=1, FormulaText:="$D$11"
SolverOk SetCell:="$D$6", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$D$4", Relation:=3, FormulaText:="$D$12"
SolverOk SetCell:="$D$6", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$D$4", Relation:=1, FormulaText:="$D$13"
SolverOk SetCell:="$D$6", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$D$6", MaxMinVal:=2, ValueOf:=0, ByChange:="$D$3:$D$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End Sub
Also der wird von einem Button aus gestartet, daher die Sub ;)