Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel Solver Dialoge unterdrücken

Excel Solver Dialoge unterdrücken
08.01.2009 01:12:00
A.
Liebes Forum,
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


10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Solver Dialoge unterdrücken
09.01.2009 10:35:13
A.
oje, ist die Frage zu schwer?
AW: Excel Solver Dialoge unterdrücken
09.01.2009 16:14:04
Lothar
Hi,
schon mal Application.DisplayAlerts = False probiert?
mfg Lothar
AW: Excel Solver Dialoge unterdrücken
10.01.2009 11:22:00
A.
"Application.DisplayAlerts = False" funktioniert in diesem Fall leider nicht ...
der Solver fragt nämlich explizit nach User-Eingabe. Daher glaube ich, dass es einen Solver-Parameter geben muss, der genau dieses unterdrückt, bzw die Frage schon im Vornherein (Integrationslimit erreicht. Weitermachen?) beantwortet.
AW: Excel Solver Dialoge unterdrücken
10.01.2009 14:10:54
Original
Hi,
ändere mal die Zeile in:
SolverSolve Userfinish:=True
mfg Kurt
AW: Excel Solver Dialoge unterdrücken
10.01.2009 22:15:00
A.
Hallo Kurt,
danke für die Antwort, aber das habe ich doch schon :(
In meinem urspr. Post
" x = SolverSolve(UserFinish:=True) 'PROBLEM: GIBT MESSAGE BEI ITERATIONSGRENZE AUS"
Andy
Anzeige
AW: Excel Solver Dialoge unterdrücken
14.01.2009 22:55:32
Heinz
Hallo,
SolverSolve Userfinish:=True
ist nicht das selbe wie
x = SolverSolve(UserFinish:=True)
Du hast es gar nicht getestet, oder? Klappt problemlos.
Gruß Heinz
AW: Excel Solver Dialoge unterdrücken
14.01.2009 23:25:00
A..Hennig
Hallo Heinz,
Du hast Recht, ich habe den Vorschlag von Kurt in der Tat nicht getestet, da ich davon ausgegangen war, dass zwischen den Zeilen "x = SolverSolve(UserFinish:=True)" und "SolverSolve Userfinish:=True" kein Unterschied bestünde.
Aber nach Deinem Einwand jetzt werde ich es testen ... und es sieht schon sehr vielversprechend aus ... jedenfalls läuft das Makro jetzt seit 10min ohne Unterbrechung. Ich melde mich morgen noch mal, sollte dies wirklich die Lösung sein, das wäre fantastisch!
Bis morgen,
Andy
Anzeige
AW: Excel Solver Dialoge unterdrücken
15.01.2009 09:14:00
A.
Mist, die gleiche Fehlermeldung kommt doch wieder, genau wie immer:
"Die Iterationsgrenze wurde erreicht. Trotzdem fortsetzen? Weiter, Stop,Hilfe"
und dass, obwohl ich jetzt mal "SolverSolve Userfinish:=True" auspropiert hatte.
Mein Ziel ist es nach wie vor, vorher einstellen zu können, was der Algorithmus bei Erreichen genau dieser Grenze tut ... und zwar ohne weiteren User-Input. Aber leider fragt er mich noch immer. grrrr :(
AW: Excel Solver Dialoge unterdrücken
17.01.2009 17:12:58
A.
hmmm,
das Problem existiert noch immer, ich habe jetzt ne Art "würg"-around, bei dem ich die Iterations- und Zeitgrenze derart hochgesetzt habe, dass die Rückmeldungen des Programms nur noch sehr selten auftreten.
Sollte jemand wissen, wie man diese dennoch abstellen kann, so wäre ich sehr dankbar.
Andy
P.S.
Unerwünschte Rückfrage 1: "Die Iterationsgrenze wurde erreicht. Trotzdem fortsetzen? Weiter, Stop,Hilfe"
Unerwünschte Rückfrage 2: "Das Zeitlimit wurde erreicht. Trotzdem fortsetzen? Weiter, Stop,Hilfe"
Anzeige
AW: Excel Solver Dialoge unterdrücken
25.01.2009 03:48:00
A.
Hier ein cross-link zu einem anderen Forum, wo ich die gleiche Frage gestellt habe:
http://www.office-loesung.de/ftopic288177_0_0_asc.php
Fazit aus dem obigen Link: Es scheint so als ob man -bis auf "SolverSolve UserFinish:=False" und "SolverOptions StepThru:=False"- keine Dialoge unterdrücken kann, wenn man nicht die Datei "solver.xla" verändern möchte oder mit der WinAPI herumspielen will.

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige