VisualBasic Nach shell-Aufruf weiter im Code

little-key

Cadet 2nd Year
Registriert
Jan. 2009
Beiträge
28
Wieder mal ein Problem, wo ich Hilfe benötige:

Hier mein Code-Ausschnitt:


HTML:
' PDF-Datei ins Webspace versenden
    Dim iBox As String
    iBox = MsgBox("Soll die PDF-Datei gleich ins WEB versendet werden?", vbYesNo + vbQuestion, "PDF-VERSAND")
      If iBox = vbYes Then
      Shell ("U:\BAT\FILFTP.EXE @U:\BAT\GE_S-FTP.cfg")
      Else
      
' abspeichern als Vorlage und beenden
    Dim sBook As Workbook
    ActiveWorkbook.SaveAs Filename:="U:\GROSSER\Preislisten\Monacor_last-pdfconvert.xls", _
        FileFormat:=xlNormal, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
    For Each sBook In Workbooks
        If (sBook.Name <> ActiveWorkbook.Name) And (sBook.Name <> ThisWorkbook.Name) Then
        sBook.Close savechanges:=False
      End If
    Next sBook

  End If


Wenn der Shell-Aufruf mit NEIN aufgerufen wird läuft der Code weiter.
Wenn mit JA aufgerufen, dann wird das externe Programm ausgeführt und bleibt dann stehen. Es soll aber nach/beim Ausführen des externen Programms auch den Code nach "else" weiter ausführen.

Wie geht das. Bitte um Hilfe.
Gruß Mario
 
Beendet sich die FILFTP.exe denn, wenn die Arbeit abgeschlossen ist?

Der Code wartet aufs Prozessende der Filftp.exe. Wenn diese sich nicht selbst beendet, dann rennt dein Code auch nicht weiter.

Das sollte also der erste Ansatz sein.



Wenn du möchtest dass dein Code parallel zur Filftp.exe läuft, dann google nach asynchronen Shell Aufrufen.
 
FilFTP arbeitet nur eine cfg-Datei ab, startet CoreFTP und überträgt Dateien per FTP.
Das Programm (DOS-Fenster) schließt sich nach dem Programmablauf.

Und so viel ich weiß, wartet shell nicht auf das Prorammende. Das macht shellX.
Kann mich auch irren....
 
Es soll aber nach/beim Ausführen des externen Programms auch den Code nach "else" weiter ausführen.
Code:
If iBox = vbYes Then
      ' wird bei JA ausgeführt
      Else
      ' wird bei NEIN ausgeführt
      End If

beides geht nicht. Dann muss das else durch ein End If ersetzt werden und das letzte End If raus.
 
Zurück
Oben