Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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

Verlängerung Wartezeit für Rückmeldung

Verlängerung Wartezeit für Rückmeldung
22.06.2016 16:05:05
Lisafred
Hallo zusammen,
ich habe ein Problem mit der Länge der Wartezeit, die VBA auf die Rückmeldung anderer Programme wartet und würde diese gerne verlängern.
Ich habe einen Code geschrieben, der eine andere Software Lingo aufruft. Lingo benötigt allerdings mindestens 5 Minuten um zu einer Lösung zu kommen, die Lingo danach an Excel übergeben soll. Das Problem ist, dass Excel nur 1:30 auf die Antwort von Lingo wartet und dann den Fehler "Microsoft Excel wartet auf die Beendigung einer OLE-Aktion in einer anderen Anwendung." ausgibt. Ich würde die Wartezeit von Excel gerne auf über 5 Minuten hochsetzen. Hat jemand eine Idee wie man da vorgehen kann?
Mit Sleep und Application.Wait Funktionen habe ich es schon probiert. Diese greifen leider nicht an der richtigen Stelle und scheinen diese 1:30 Wartezeit von Excel nicht zu beeinflussen.
Ich würde mich sehr über Antwort freuen.
Viele Grüße
Lisafred

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verlängerung Wartezeit für Rückmeldung
22.06.2016 16:22:33
Michael
Hi,
kann Lingo (was auch immer das sein mag) die Ausgabe in eine Datei schreiben? Dann kann man Lingo (evtl. auf dem Umweg über eine Batch-Datei) starten und mit .Wait alle x Sekunden mit Dir nachsehen, ob die Datei schon da ist.
Ob es direkt in Excel was gibt, wissen andere Helfer sicher besser als ich.
Schöne Grüße,
Michael

AW: Verlängerung Wartezeit für Rückmeldung
22.06.2016 17:00:31
Lisafred
Hallo Michael,
Lingo ist eine Optimierungssoftware, die meinen in Excel aufgebauten Datensatz einliest und löst. Der Lösungswert muss danach von Lingo an Excel übergeben werden und weiter verarbeitet werden. Problem bei der Fehlermeldung "Microsoft Excel wartet auf die Beendigung einer OLE-Aktion in einer anderen Anwendung." ist, dass man auf "OK" klicken muss um die Fehlermeldung zu beseitigen und Excel wieder zum Laufen zu bringen. Selbst wenn ich die Lösungswerte in eine andere Datei schreiben würde, bekomme ich Excel nicht wieder zum laufen ohne manuell auf "OK" zu klicken. Da ich sehr viele Durchläufe habe, ist das manuelle klicken auf "OK" leider keine Option.
VG
Lisafred

Anzeige
AW: Verlängerung Wartezeit für Rückmeldung
22.06.2016 17:15:07
Michael
Hi,
- wie wird der "Datensatz eingelesen"? Via Datei?
- wie startest Du Lingo?
- wie wird der Wert "an Excel übergeben"?
Mit ein paar Codezeilen ist die Fragestellung vielleicht plausibler.
Gruß,
Michael

AW: Verlängerung Wartezeit für Rückmeldung
22.06.2016 22:51:39
Lisafred
Hallo Michael,
Lingo ist als ein Object in Excel eingebettet. Innerhalb des Objekts Lingo werden in Excel definierte Daten über eine @OLE (Object Linking and Embedding) Funktion in Lingo eingelesen. Das funktioniert über einen Standardcode und funktioniert auch in anderen Settings.
Lingo wird über folgenden Befehl aufgerufen, der immer funktioniert und von Lingo definiert ist:
Set Lingo = CreateObject("LINGO.Document.4")
Dim iErr As Integer
iErr = Lingo.RunScriptRange("MODEL") 'in dieser Zeile wird Lingo gestartet und die Daten aus  _
Excel eingelesen
If (iErr > 0) Then
MsgBox ("Unable to solve model - Error: " & iErr)
Stop
End If 
Der Lösungswert den Lingo definiert soll ebenfalls über eine @OLE Schreibfunktion (Standard in Lingo) an ein anderes Excelsheet übergeben werden.
Problem ist, dass Excel in der Ausführungszeile von Lingo (iErr = Lingo.RunScriptRange("MODEL")) im Code hängen bleibt solange Lingo rechnet. Und nach 1:30 Minute ist Excel der Meinung, dass er nicht länger warten kann und gibt die Fehlermeldung "Microsoft Excel wartet auf die Beendigung einer OLE-Aktion in einer anderen Anwendung." aus. Womit Excel komplett blockiert ist.

Anzeige
mir zu hoch. Rudi? Nepumuk?
23.06.2016 13:16:25
Michael
Hi,
ist das das: http://www.scientific-solutions.ch/de/product/lingo/description
Da steht was von DLL oder OLE oder "von Excel Makro aus aufrufen", deshalb frage ich mich, ob es nicht eine andere Möglichkeit als OLE gibt, wie z.B. über die Shell. Mir liegt das Handbuch ja nicht vor.
Der Timeout in Excel selbst ist mir zu hoch, ich stelle mal auf offen.
Schöne Grüße,
Michael

OT: LINGO kenne ich als OOL aus/in Director! ...
23.06.2016 18:45:22
Luc:-?
…Das damit noch gearbeitet wird? Erstaunlich! ;-)
Gruß, Luc :-?

AW: OT: LINGO kenne ich als OOL aus/in Director! ...
24.06.2016 12:45:32
Michael
Ja, das war auch das Ergebnis meiner ersten Recherche, aber mit "Lingo Optimierung" kommt denn der Link raus, das scheint doch was anderes zu sein (auch wenn vielleicht die Syntax angelehnt sein mag).
Man findet relativ wenig im Netz zu dem konkreten Ding.
Vielleicht müßte man einfach für den "verlängerten Support" bezahlen, und das Problem würde sich in Luft auflösen...
Gruß,
Michael

Anzeige
AW: Verlängerung Wartezeit für Rückmeldung
28.06.2016 09:45:30
EtoPHG
Hallo Lisafred,
Eine OLE Automation läuft generell Asynchron zum ExcelThread. Wird diese nicht innerhalb 90 Sekunden beendet meldet Excel den "Timeout". Um dies zu verhindern, bzw. dem OLE Thread "beliebig lange Zeit zu geben", bietet sich das Ausschalten der Alarmmeldung (vor dem .RunScriptRange) an

Application.DisplayAlerts = False
iErr = Lingo.RunScriptRange("MODEL")
Application.DisplayAlerts = True
Gruess Hansueli

AW: Verlängerung Wartezeit für Rückmeldung
28.06.2016 22:39:28
Lisafred
Hallo Hansueli,
so klappt es. Vielen Dank für die Hilfe.
Ich musste zusätzlich noch die MIP/GAP-Toleranz meines Solvers auf 5% setzen und den Speicher erweitern und dann wird mein Problem auch schon in einer Stunde gelöst :)
VG
Lisafred
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige