thill0r
Goto Top

VBA Öffnen beliebiger Anwendungen

Hi,

wäre nett wenn mir jemand helfen könnte.

Hallo,

und zwar möchte ich ein beliebiges Programm starten , dieses soll eine Exceldatei starten (es ist nicht Excel)und nach 10 Sekunden automatisch als .csv abgespeichert werden.
Nach weiteren 10 Sekunden soll das Programm geschlossen werden (ohne Speicherndialog).

Der Code unten bezieht sich rein auf Excel und dies klappt wunderbar.
Meine Frage ist , wie man eine beliebige Anwendung unter dem gleichen o.g Prozedere starten kann.

Es wäre nett wenn mir jemand Anregungen , Hilfe geben könnte.

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("d:\testt\test.xls")
objExcel.Visible = true
objWorkbook.RefreshAll //refreshed das Dokument
wscript.sleep 10000
objExcel.Application.DisplayAlerts = False
objWorkbook.SaveAs ("d:\test\test.csv")
objExcel.Application.DisplayAlerts = True
wscript.sleep 10000
objExcel.Quit

Vielen Dank im voraus und eine schöne Woche!

mfg

thill0r

Content-ID: 140327

Url: https://administrator.de/forum/vba-oeffnen-beliebiger-anwendungen-140327.html

Ausgedruckt am: 22.12.2024 um 09:12 Uhr

Tommy70
Tommy70 12.04.2010 um 08:05:29 Uhr
Goto Top
Hallo,

set shell = CreateObject("WScript.Shell")  
shell.run "BeliebigesProgramm.exe",3  
thill0r
thill0r 12.04.2010 um 08:13:07 Uhr
Goto Top
Hi
habe dies jetzt versucht oben einzubauen , dies klappt aber nicht.
Auch wenn ich nur die beiden o.g Zeilen ausführe funktioniert dies nicht.
Habe ich etwas falsch gemacht?
Wie muss ich dies einbauen , damit eine Exceldatei geöffnet wird (diese wird aber nicht mit excel geöffnet) ?
Danke für Hilfe
Tommy70
Tommy70 12.04.2010 um 08:24:52 Uhr
Goto Top
Mit den Infos die du gibst, kann man dir nicht wirklich mehr helfen.
Du verätst uns weder, ob du das Programm aus einem normalen Vbs Script oder aus einer Anwendung (welche?) mit Vba starten willst.
Noch können wir wissen welches Programm du starten willst. Wir wissen nur, dass es nicht Excel ist face-wink
Auch könntest du mal den Code posten der bei dir anscheinend nicht funktioniert...
thill0r
thill0r 12.04.2010 um 08:51:54 Uhr
Goto Top
Also face-smile

ich möchte ein Programm starten (leider weis ich jetzt den Namen nicht , ist aber glaube auch egal ;) )
Dieses Programm ist ähnlich wie Excel , liest somit auch xls und xlsx Dateien.
Das Programm soll mittels VBA geöffnet und eine Exceldatei geöffnet werden.
Diese Exceldatei soll nach z.b 10 Sekunden als .csv gespeichert werden.
Nach dem Speichern soll das Programm automatisch wieder geschlossen werden.
Sollte die Datei schon vorhanden sein , soll diese automatisch überspeichert werden.

Dieser Code bezieht sich rein auf Excel , wie man an der Funktion sehen kann.

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("d:\testt\test.xls")
objExcel.Visible = true
objWorkbook.RefreshAll //refreshed das Dokument
wscript.sleep 10000
objExcel.Application.DisplayAlerts = False
objWorkbook.SaveAs ("d:\test\test.csv")
objExcel.Application.DisplayAlerts = True
wscript.sleep 10000
objExcel.Quit

Dieser Code funktioniert einwandfrei , nun ist meine Frage wie ich den Code umschreiben muss damit das gleiche mit einer anderen Anwendung funktioniert.

Danke
Tommy70
Tommy70 12.04.2010 um 08:58:55 Uhr
Goto Top
Hallo,

welches Programm es ist ist eben nicht egal. (Befehlszeilenparameter usw.)
Willst du in diesem Programm mit VBA die Excel-Datei öffnen oder willst du mit einem VBS-Script das Programm mit der zu öffnenden Excel-Datei als Parameter starten?
thill0r
thill0r 12.04.2010 um 09:02:44 Uhr
Goto Top
Hi
Ok das sage ich dir noch im laufe des Tages.(wie dsa Programm heißt)
Also ich möchte das Programm mit der zu öffnenden Excel-Datei als Parameter starten!
Quasi Programm + Datei.
Tommy70
Tommy70 12.04.2010 um 09:14:03 Uhr
Goto Top
Dann muss sich das Programm aber so starten lassen falls es den Aufruf der Datei als Befehlszeilenparameter unterstützt.

set shell = CreateObject("WScript.Shell")  
shell.run "GanzerPfadzurExe\BeliebigesProgramm.exe " & "GanzerPfadzurExcelDatei\DeineEcelFile.xls",1  

Ob das Speichern als CSV möglich ist hängt vom Programm ab.

Das warten im Script kannst du mit
wscript.sleep 10000
lösen.
thill0r
thill0r 12.04.2010 um 09:23:01 Uhr
Goto Top
also habe dies jetzt mal probiert:

set shell = CreateObject("WScript.Shell")
shell.run "C:\Program Files\Microsoft Office\Office12\excel.exe " & "D:\test\test.xls",1

wenn ich dies ausführe , erhalte ich ein Kompilierungsfehler.
Ich glaub ich bin dumm ;)
Tommy70
Tommy70 12.04.2010 um 09:44:23 Uhr
Goto Top
Da du einen langen Pfad mit Leerzeichen hast musst du noch zusättliche Anführungszeichen setzten.

shell.run Chr(34) & "C:\Program Files\Microsoft Office\Office12\excel.exe " & Chr(34)  & "D:\test\test.xls",1  
thill0r
thill0r 13.04.2010 um 09:58:24 Uhr
Goto Top
klappt auch nicht.. naja ich glaub ich bin zu doof und mir fehlen grundlagen ;)
danke trotzdem!!!!