Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Abfrage "VBA macro beendet?"

Abfrage "VBA macro beendet?"
12.06.2005 18:19:58
Babs
Hallo,
ich befinde mich in einem Excel-VBA-Macro und rufe von dort aus eine WordApplikation auf und starte dort ein Word-VBA-Macro. Nachdem das zu Ende ist, geht es im Excel weiter. Da die Anwendung im Word mit etwas Zeit verbunden ist, kommen immer Laufzeitfehler mit dem Inhalt, dass Excel auf die andere Anwendung wartet. Wie kann ich abfragen, ob das entsprechende Word-Macro beendet ist, bevor ich dann wieder die Excel-Applikation aktiviere und dort weiter gehe in den Anweisungen?
Danke
Babs

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage "VBA macro beendet?"
13.06.2005 17:26:24
Nepumuk
Hallo Babs,
ich habe etwas überlegen müssen, welches die für die am leichtesten nachvollziehbare Methode wäre. Dass einfachste ist, du lässt am Ende deines Wordmakros einer leere Textdatei erstellen. Excel wartet so lange, bis die Textdatei angelegt ist, oder eine gewisse Zeit überschritten würde, falls es Probleme beim Wordmakro gab.
Ergänze dein Wordmakro so:
Public Sub Wordmakro()
    
    ' Hier dein Code des Wordmakros
    
    Reset
    Open "C:\MakroFertig.txt" For Output As #1
    Close #1
End Sub

Und das Excelmakro so:
Private Declare Sub Sleep Lib "kernel32.dll" ( _
    ByVal dwMilliseconds As Long)

Public Sub Excelmakro()
    Dim intCount As Integer
    If Dir$("C:\MakroFertig.txt") <> "" Then Kill ("C:\MakroFertig.txt")
    
    ' Hier dein Code des Excelmakros welches Word startet
    
    Do
        Sleep 1000 'eine Sekunde warten
        intCount = intCount + 1
    Loop Until Dir$("C:\MakroFertig.txt") <> "" Or intCount = 30 ' ~ 30 Sekunden
    If Dir$("C:\MakroFertig.txt") <> "" Then Kill ("C:\MakroFertig.txt")
    
    ' Hier ist entweder das Wordmakro beendet oder 30 Sekunden Wartezeit überschritten
    
    ' Abbruchmöglichkeit wenn 30 Sekunden Wartezeit überschritten
    
    If intCount = 30 Then If MsgBox("Timeout des Wordmakros." & vbLf & vbLf & _
        "Programm fortsetzen?", 17, "Warnung") = 2 Then End
    
    ' Hier geht dein Code weiter
    
End Sub

Gruß
Nepumuk
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige