Excel Solver Dialoge unterdrücken
08.01.2009 01:12:00
A.
ich habe mir ein Solver-Makro geschrieben, welches eine ganze Weile ohne User-Interaktion laufen soll. Leider kann ich die Nachrichten, die der Solver abgibt, sobald entweder die Iterations- oder die Zeitgrenze erreicht wurde, nicht abschalten. Folglich bleibt das Programm dann immer stehen ... grrrrmblfix ... und ich muss manuell auf "Weiter" bzw. auf "Stopp" klicken.
FRAGE: Womit kann ich ALLE Dialoge, die vom Solver ausgehen unterdrücken?
Unten eingefügt habe ich die Sub, in welcher ich den Solver aufrufe ... ganz alleine so, wird dieser Codeteil jedoch nicht laufen. Ich hoffe, dass jemand dennoch erkennt, woran es bei diesem Code hapert?! Ich hatte bereits gelesen, dass man "solverFinish KeepFinal:=True" setzen soll. Das ist auch ganz nett, habe ich auch gemacht (s.u.) hilft jedoch nicht, wenn die Iterations- oder die Zeitgrenze erreicht wird; denn dann spuckt Excel dennoch eine Mitteilung aus. Hilfe!!
Über Rückmeldungen freue ich mich,
Andy
Sub executeSOLVER(aSP As Variant, aSO As Variant, aSF As Variant, aSS As Variant, aSA As _
Variant)
' This routine calls the Excel-Add-In-SOLVER
Dim i As Integer: Dim x As Variant
SolverReset ' Clear any previous Solver settings.
SolverOptions MaxTime:=CInt(aSP(0)), Iterations:=CInt(aSP(1)), Precision:=aSP(2), _
AssumeLinear:= _
aSP(3), StepThru:=aSP(4), Estimates:=aSP(5), Derivatives:=aSP(6), SearchOption:=aSP(7), _
_
IntTolerance:=aSP(8), Scaling:=aSP(9), Convergence:=aSP(10), AssumeNonNeg:=aSP(11)
For i = 0 To (UBound(aSA, 1) - LBound(aSA, 1))
SolverAdd CellRef:=aSA(i)(0), Relation:=CInt(aSA(i)(1)), FormulaText:=aSA(i)(2)
Next i
solverOK SetCell:=aSO(0), MaxMinVal:=aSO(1), ValueOf:=aSO(2), ByChange:=aSO(3)
solverFinish KeepFinal:=True 'PROBLEM: GIBT MESSAGE BEI ITERATIONSGRENZE AUS
x = SolverSolve(UserFinish:=True) 'PROBLEM: GIBT MESSAGE BEI ITERATIONSGRENZE AUS
End Sub