Microsoft Excel

Herbers Excel/VBA-Archiv

ext Programmaufruf beschleunigen

Betrifft: ext Programmaufruf beschleunigen von: Paul
Geschrieben am: 10.11.2012 11:51:00

Hallo Forum,

ich habe mir unter Excel ein VBA-Programm gebaut, welches eine Übergabedatei erzeugt und anschließend ein externes Programm aufruft. Das externe Programm liest die Übergabedatei ein, führt verschiedene Berechnungen aus und erzeugt dann eine Ergebnisdatei. Danach beendet sich das externe Programm von selbst.
Mein VBA-Programm verarbeitet dann die Ergebnisdatei und erzeugt eine neue Übergabedatei um anschließend wieder das externe Programm aufzurufen.
Das ganz läuft also in einem Loop.

Was mir im Moment noch nicht so ganz gefällt, ist, dass der Aufruf des externen Programms etwas lange dauert. Ich habe schon diverse Aurufe durchprobiert: Ein Aufruf mittels Shell (Shell ("C:\Programme\start.exe [Parameter]")) auch die WScriptShell habe ich schon ausprobiert (WshShell.Run "C:\Programme\start.exe [Parameter]", 0, True)

Jedes mal dauert es ungefähr gleichlange (~ 3 sec) bis sich das externe Programm geschlossen hat, und die Ergebnisdatei vorliegt.

Da der oben beschriebene Loop immer wieder (und tlw bis 10mal in der Schleife) abläuft bin ich für jede gewonnene Sekunde dankbar.
Welche Möglichkeiten gibt es noch ein externes Programm aufzurufen und dabei keine Zeit zu verschenken.

Gruß Paul

  

Betrifft: AW: ext Programmaufruf beschleunigen von: Sebastian
Geschrieben am: 10.11.2012 15:56:18

Hallo Paul,

Was sind das denn für Berechnungen? Kannst du diese nicht in Excel ausführen lassen?
Dann würdest du den Programmaufruf sparen und die ganze Sache wäre schneller...

Nur so 'ne Idee...

Freundlicen Gruß

Sebastian


  

Betrifft: AW: ext Programmaufruf beschleunigen von: Paul
Geschrieben am: 10.11.2012 16:54:44

Hallo Sebastian,

leider geht das nicht. Es handelt sich bei dem externen Programm um eine branchenspezifische Software, die Berechnungen tätigt, die ich in Excel/VBA nicht nachbauen kann.

Ich bin also darauf angewiesen, dieses externe Programm aufzurufen.

Gruß Paul


  

Betrifft: AW: ext Programmaufruf beschleunigen von: Paul
Geschrieben am: 10.11.2012 16:58:31

Habe das Häkchen bei "Frage noch offen" vergessen


  

Betrifft: AW: ext Programmaufruf beschleunigen von: MatthiasG
Geschrieben am: 10.11.2012 20:51:20

Hallo Paul,

hast du denn schon mal getestet, wie schnell das Programm arbeitet, wenn du es direkt von der Kommandozeile startest? Oder wenn du den Aufruf mehrfach in eine Batch-Datei schreibst, ist es denn dann wirklich schneller?

Oder teste mal die Geschwindigkeit mit einer konstanten Übergabedatei. Vielleicht liegt es daran, dass die Übergabedateidatei von VBA nicht so schnell freigegeben wird (sie wurde ja frisch erzeugt) und das externe Programm muss dann darauf warten.

Eine RAM-Disk für die Übergabedatei könnte vielleicht auch für einen Geschwindigkeitszuwachs sorgen.

Grüße,
Matthias


  

Betrifft: AW: ext Programmaufruf beschleunigen von: Paul
Geschrieben am: 14.11.2012 23:01:03

Situation hat sich geändert. Lösung vermutlich über *.dll
Dazu neuer Thread