habe folgendes Problem mit dem im VBA Code eingebundenen Solver: Der Solver an sich funktioniert! Nur bekomme ich jedes mal die Fehlermeldung "Die Zielzelle muss eine einzelne Zelle auf dem aktiven Arbeitsblatt sein". Die Zielwertsuche macht er dennoch ganz normal und gibt mir die richtige Lösung raus. Allerdings hab ich ein Makro, was 32 Datensätze einpflegt und die Zielsuche startet. Dabei kommt nach jedem Datensatz die Meldung und das ist ganz schön nervig :D
Konnte bereits herausfinden, dass die Meldung von der Zeile SolverReset kommt, die habe ich versucht auszulagern hat aber auch nicht funktioniert. Muss ich die vielleicht in das Arbeitsblatt der Zielwertsuche als Makro auslagern? Wenn ja wie kann ich dann darauf zugreifen? Ich glaube ich seh den Wald vor lauter Bäumen nicht bei der Lösung des Problems...
Danke euch schonmal im voraus
Hier der Code:
Sub Goalseek_capt()
' Goalseek_capt Makro
Call LöscheSolver
SolverOk SetCell:="$Y$33", MaxMinVal:=3, ValueOf:=0, ByChange:="$C$1,$I$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$C$1", Relation:=2, FormulaText:= _
"Breakeven_selling_price_capt"
SolverOk SetCell:="$Y$33", MaxMinVal:=3, ValueOf:=0, ByChange:="$C$1,$I$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$L$33", Relation:=1, FormulaText:="$N$1"
SolverOk SetCell:="$Y$33", MaxMinVal:=3, ValueOf:=0, ByChange:="$C$1,$I$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$L$33", Relation:=3, FormulaText:="$O$1"
SolverOk SetCell:="$Y$33", MaxMinVal:=3, ValueOf:=0, ByChange:="$C$1,$I$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$Y$33", MaxMinVal:=3, ValueOf:=0, ByChange:="$C$1,$I$1", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve userfinish:=True
End Sub
Und hier das Löschen:
Sub LöscheSolver()
Sheets("Economic balance").Activate
SolverReset
End Sub