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

Fremdprogramm aus Excel starten

Fremdprogramm aus Excel starten
13.08.2005 12:57:04
Gerhard
Hallo ExcelSpezialisten !
Meine Frage lautet:
ist es möglich aus Excel heraus ein Fremdprogramm (Buchhaltungsprogramm) zu starten, in diesem dann Befehle auszuführen und dann wieder zu Excel zurückzukehren - und zwar alles von Excel aus?
Derzeit läuft es so, daß ich Excel starte, dann starte ich das Buchhaltungsprogramm (nicht von Excel aus), rufe dort eine Saldenliste auf den Bildschirm, kopiere diese (rechte Maustaste - kopieren), kehre zurück zu Excel und füge das kopierte dort in eine Tabelle ein.
Herzlichen Dank für Eure Mühe!
mfg Gerhard

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fremdprogramm aus Excel starten
13.08.2005 13:44:02
Mario
hi Gerhard,
ChDir "L:\FS\master"
Workbooks.Open Filename:= _
"\\FRABRS01\USER\FS\master\master.xls"
'Hier einfach deinen Pfad des Programms angeben

'Probiere mal über den Makro Recorder das Kopieren der Saldenlist aufzuzeichnen und
füge dann diesen Codeabschnitt hier ein

Sheets("Tabelle1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
ActiveWorkbook.Save
ActiveWorkbook.Close
Hoffe ich konnte helfen.
Gruß
Mario
AW: Fremdprogramm aus Excel starten
13.08.2005 13:52:31
Gerhard
Hallo Mario,
besten Dank für Deine rasche Antwort!
Du schreibst:
ChDir "L:\FS\master"
Workbooks.Open Filename:= _
"\\FRABRS01\USER\FS\master\master.xls"
'Hier einfach deinen Pfad des Programms angeben
Mein Problem ist:
Das zu öffnende Programm ist aber kein Excel-Programm !
Es handelt sich um ein EuFibu-Programm.
mfg Gerhard
Anzeige
AW: Fremdprogramm aus Excel starten
13.08.2005 14:21:13
Mario
Hi Gerhard,
dürfte eigentlich auch kein Problem sein da du genau so wie über Start/Ausführen programme ansprechen kannst. Müsste also auch mit einer .exe dabei funktionieren. Bin mir aber nicht 100% sicher probier es einfach mal aus.
Gruß
Mario
AW: Fremdprogramm aus Excel starten
13.08.2005 14:31:04
Gerhard
Hallo Norman,
danke für Deinen Tipp!
Ich komme allerdings nicht ganz klar mit dem Programm.
zur Info:
mein Fremdprogramm steht unter:
C:\EUFIBU\efibu.exe
Das Programm von Michael Schwimmer mit meiner Adaptierung (lediglich wo steht - original war:) sieht so aus:
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STILL_ACTIVE = &H103
Private Declare

Function GetExitCodeProcess Lib _
kernel32 (ByVal hProcess As Long, _
lpExitCode As Long) As Long
Private Declare 

Sub Sleep Lib "kernel32" (ByVal _
  dwMilliseconds As Long)
Private Declare 

Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Sub StartenUndWarten(efibu As String)         'original war: 

Sub StartenUndWarten(Programmname As String)
'

Sub StartenUndWarten()
Dim hwndShell As Long, hwndProzess As Long
Dim lngLäuft As Long
 hwndShell = Shell("c:\eufibu\efibu.exe", 1)   'original war: hwndShell = Shell("c:\eufibu\efibu.exe", 1)
 hwndProzess = OpenProcess(PROCESS_QUERY_INFORMATION, _
    0&, hwndShell)
  Do
    GetExitCodeProcess hwndProzess, lngLäuft
     'ev.
    Sleep 100
Loop While lngLäuft = STILL_ACTIVE
End Sub

Weisst Du vielleicht was ich falsch mache ?
Danke!
mfg Gerhard
Anzeige
AW: Fremdprogramm aus Excel starten
13.08.2005 14:56:35
Norman
Hi Gerhard,
ich glaube, Du machst nur den Aufruf falsch. Das darf in Deinem Falle nur StartenUndWarten sein und nicht StarteUndWarten(efibu As String). Michael hatte vorgesehen, dass man den Programmnamen übergeben kann, deshalb stand da auch vorher
Programmname As String
Und der Shell-Aufruf war:
hwndShell = Shell(programmname, 1) (und nicht wie von Dir beschrieben hwndShell = Shell("c:\eufibu\efibu.exe", 1))
Also, entweder Du rufst wie eben beschrieben nur StartenUndWarten auf oder Du nimmst die Originalroutine von Michael (ohne Deine Änderungen) und rufst diese dann mit:
StartenUndWarten "c:\eufibu\efibu.exe"
auf.
Viel Spaß
Norman
Anzeige
AW: Fremdprogramm aus Excel starten
13.08.2005 15:45:24
Gerhard
Hallo Norman,
nochmals danke für Deine Hilfe!
Ich habe es jetzt so eingegeben:

Sub StartenUndWarten()
Dim hwndShell As Long, hwndProzess As Long
Dim lngLäuft As Long
Programmname = "c:\eufibu\efibu.exe"
hwndShell = Shell(Programmname, 1)
 hwndProzess = OpenProcess(PROCESS_QUERY_INFORMATION, _
    0&, hwndShell)
  Do
    GetExitCodeProcess hwndProzess, lngLäuft
     'ev.
    Sleep 100
Loop While lngLäuft = STILL_ACTIVE
End Sub

es kommt die Fehlermeldung:

Sub oder 

Function nicht definiert
und Do wird markiert
Ich komme einfach nicht dahinter !
Vielleicht hast Du ja noch einen Tipp!
Jedenfalls jetzt schon herzlichen Dank für Deine Mühe!
mfg Gerhard

Anzeige
AW: Fremdprogramm aus Excel starten
13.08.2005 16:22:50
Norman
Hi Gerhard,
folgender Vorschlag:
Leg ein neues Modul ein und kopier den kompletten Code von Michael rein oder noch besser, nimm das Zip von Ihm und benutze diese Excel Datei.
Dann legst Du Dir ein weiteres Modul ein und gibst folgendes ein:

Sub Test()
StartenUndWarten "c:\eufibu\efibu.exe"
End Sub

Und dann drückst Du einfach mal F5 in diesem Modul (am besten mit dem Cursor auf der Zeile StartenUndWarten. Dann muss es gehen.
Gruß
Norman
AW: Fremdprogramm aus Excel starten
13.08.2005 16:56:36
Gerhard
Hallo Norman,
das wars!
Mir hat in Tabelle1 dieses Makro gefehlt !!!

Sub Test()
StartenUndWarten "c:\eufibu\efibu.exe"
End Sub

Danke !!!!
Jetzt hätte ich noch eine Zusatzfrage:
kann man in dem nunmehr geöffneten Programm (efibu.exe) von Excel aus eine Datei öffnen?
Falls Du keine Lust mehr hast kann ich das verstehen !
Ich möchte Dir jedenfalls recht herzlich für Deine rasche und kompetente Hilfe danken !
mfg Gerhard
Anzeige
AW: Fremdprogramm aus Excel starten
13.08.2005 21:37:57
Reinhard
Hallo Gerhard,
vielleicht geht das mit API, aber das kann nicht.
Wenn das programm durch Tastturkürzel bedienbar ist, könnte es mit Sendkeys gehen,also
Application.sendkeys "Huhu""
schau dazu in die vba-Hilfe von sendkeys.
Aber sendkeys ist unberechnbar, k.A. wohin es das Huhu schreibt :-)
Die Registry sollteste nicht offen haben*g
Gruß
Reinhard
AW: Fremdprogramm aus Excel starten
13.08.2005 23:26:37
Norman
Hi Gerhard,
hey, Lust hat man hier immer, dafür ist das Forum da ;)
Hm, bis auf Sendkeys fällt mir auch keine Lösung ein, da ich kaum glaube, dass die Fibu eine VBA-Schnittstelle hat.
Ich bin die ganze Zeit am überlegen, was Du genau vor hast. Wieso musst Du die Fibu eigentlich über Excel starten Vielleicht willst Du ja eine Excel-Datei in die Fibu einlesen?
Gib mir mal einen Tip, vielleicht fällt ja jemandem noch etwas ein.
Gruß
Norman
Anzeige
AW: Fremdprogramm aus Excel starten
14.08.2005 10:09:10
Gerhard
Hallo Norman und Reinhard,
Zunächst wünsche ich einen schönen Sonntag und danke für Eure Mühe!
Ich war leider gestern nicht mehr vor meinem Computer, da ich weg mußte.
Der Grund warum ich das BH-Programm von Excel aus bedienen möchte ist folgender:
die Auswertungen wie zB Saldenliste OP-Liste usw. sind im BH-Programm nicht so wie ich mir das vorstelle. Daher habe ich mir in Excel Makros geschrieben die alles so darstellen wie ich das gerne hätte. Dabei lege ich nir dann in der Arbeitsmappe für jeden Monat eine eigene Tabelle an. Dies hat den Vorteil, dass ich dann noch weitere Auswertungen wie Monatsvergleiche, Diagramme usw automatisch erstellen kann.
Und zu diesem Zweck hätte ich gerne alles von Excelaus gesteuert bzw. automatisiert.
Falls es noch Tipps gibt würde ich mich natürlich freuen!
Ich glaube übrigens auch, das dies mit sendkeys in diesem Fall wahrscheinlich - wenn überhaupt - nur sehr umständlich möglich wäre.
Herzlichen Dank nochmals für die Hilfe!
mfg Gerhard
Anzeige
AW: Fremdprogramm aus Excel starten
14.08.2005 11:27:39
Norman
Hi Gerhard,
ok, danke für die Info. Ich tippe mal, Du machst einen Export Deiner Daten aus der BH-Software und importierst die Werte in eine Excel-Datei, um Sie dann zu verarbeiten. Und diesen Vorgang willst Du automatisieren. Ich bin Deiner Meinung und halte Sendkeys da für sehr umständlich, wenn es aber nur wenige Schritte sind kann man das auch mal machen.
Ansonsten würde ich mal nach einer besseren Software schauen :)
Viel Erfolg noch und Gruß
Norman

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige