Makro starten wenn anderes beendet ist

Moderator: ModerationP

Makro starten wenn anderes beendet ist

Beitragvon Arthro » 07. Aug 2018, 06:42

Guten Morgen,

ich habe ein für mich großes Problem.

Ich starte mittels folgendem Code ein VB-Script über Excel:

Code: Alles auswählen
Sub PackingListRun() 'generiert ein Excel-File mit Daten
    Dim WSHShell As Object
    Set WSHShell = CreateObject("WScript.Shell")
    WSHShell.Run """J:\....vbs""", 0, True
    Set WSHShell = Nothing
End Sub

Sub PackingListClose() 'Schließt das generierte Excel File
    Dim WSHShell As Object
    Set WSHShell = CreateObject("WScript.Shell")
    WSHShell.Run """J:\.....vbs""", 0, False
    Set WSHShell = Nothing
Sheets("PackingList").Range("K10").ClearContents
End Sub


Über eine Schaltfläche rufe ich mittels Call... beide Befehle auf. Das erste generiert ein Excel-File welches nach Beendigung mehrerer Befehle im Call geöffnet wird. Das Zweite sollte dann das geöffnete File schließen, da ich es im offenen Modus nicht benötige.

Das Problem ist, der zweite Befehl wird ebenfalls im letzten Schritt über die Schaltfläche aufgerufen. Da aber das File erst nach Beendigung aller Befehle geöffnet wird, klappt das nicht.

Ich würde irgendwie ein Befehl benötigen, dass das Sub PackingListClose erst nach Beendigung des ersten Befehls startet, also losgelöst vom Ersten selbst.

Hat jemand eine Idee?

Besten Dank im Voraus
Andy
Arthro
 

Re: Makro starten wenn anderes beendet ist

Beitragvon RPP63 » 07. Aug 2018, 06:51

Moin!
Zunächst mal kennen wir ja die .vbs nicht.
Aber egal:
Wenn sie ein neues Workbook erstellt, ist dieses für Excel das ActiveWorkbook
Dieses schließt man per
Code: Alles auswählen
ActiveWorkbook.Close False

Das False bewirkt, dass es nicht gespeichert wird.

Nähere Infos??

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9629
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Makro starten wenn anderes beendet ist

Beitragvon Arthro » 07. Aug 2018, 07:01

Guten Morgen Ralf,

es ist auch Visual Basic. Das mit Active... habe ich auch schon versucht. Das Problem ist eben, dass das erzeugte Workbook erst nach Beendigung aufgerufen wird.

Ich müsse sozusagen den Befehl nach Beendigung des Makros aufrufen aber ohne nochmal selbst eingreifen zu müssen. Ich habe es schon über Change, SelectChange versucht, geht aber auch nicht.

Besteht denn die Möglichkeit überhaupt ein neuen Befehl nach Beendigung des Ersten aufzurufen?

VG
Andy
Arthro
 

Re: Makro starten wenn anderes beendet ist

Beitragvon RPP63 » 07. Aug 2018, 07:14

Ich sehe nirgendwo Visual Basic!
Ich sehe ein wenig VBA und weiß, dass es eine .vbs gibt.
Beide arbeiten Code sequentiell ab.
Da Du nicht bereit bist, mehr Infos zu geben, bleibt mir nur der Tipp, es mit DoEvents oder evtl. Sleep() zu probieren und bin jetzt bis heute Abend offline.

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9629
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Makro starten wenn anderes beendet ist

Beitragvon losgehts_offline » 07. Aug 2018, 07:36

Hallo,

ich verstehe dich so, dass das Problem ist, dass du zu früh das "Schließen-Makro" ausführst.

Warum benutzt du überhaupt zwei vbs-Dateien? Wäre es nicht viel einfacher, am Ende der ersten vbs-Datei noch die Code-Zeilen einzufügen, die die Datei auch wieder schließen?

Grüße, Ulrich
losgehts_offline
 


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: DerHoepp, Klaus-Dieter, vatifant und 20 Gäste