Microsoft Excel

Herbers Excel/VBA-Archiv

In Excel externes Programm starten | Herbers Excel-Forum


Betrifft: In Excel externes Programm starten von: Axel F
Geschrieben am: 14.01.2010 09:02:27

Hallo zusammen,

folgendes Problem: Ich möchte in meinem Excel-Sheet ein externes Programm starten, welches Daten aus einem Datenbanksystem in mein Excel-sheet überträgt (das ist bei uns ein kommerzielles IBM Programm "i-Series"). Der Start funktioniert nicht mit Shell (ich vermute, da es kein .exe file ist).
Ich habe mir jetzt so geholfen, dass ich mir einen Hyperlink in mein Excel-Sheet lege und diesen per Makro starte. Dann popt allerdings das Fenster des externen Programms auf und will noch mit zwei Mausclicks im Programm bestätigt werden. Jetzt meine Frage: Kann man evtl diese beiden Mausclicks mit dem Makro steuern? D.h. kann ich Excel sagen: clicke jetzt an eine ganz bestimmte Cursor-Position?
Ich hoffe man kann mir helfen

Gruß
Axel

  

Betrifft: AW: In Excel externes Programm starten von: Tino
Geschrieben am: 14.01.2010 10:07:51

Hallo,
versuch mal Dein Programm hiermit zu starten.

Public Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" (ByVal hWnd As Long, _
                     ByVal lpOperation As String, _
                     ByVal lpFile As String, _
                     ByVal lpParameters As String, _
                     ByVal lpDirectory As String, _
                     ByVal nshowcmd As Long) As Long


Sub beliebigeDateiÖffnen()
Dim strPfad As String
Const SW_NORMAL = 1

'Hier Dein Programm angeben
strPfad = "C:\Datei.???" 'Pfad zur Datei


Call ShellExecute(0, "open", strPfad, "", "", SW_NORMAL)

End Sub
Gruß Tino


  

Betrifft: Beliebige Datei mit verknüpftem Programm starten von: NoNet
Geschrieben am: 14.01.2010 11:24:51

Hallo Axel F ;-),

mit folgendem Code kannst Du eine beliebige Datei mit dem für den Dateityp assoziierten Programm starten :

Sub BeliebigeDateiStarten()
    Dim strDateiname As String, strOrdner As String
    strOrdner = "C:\Temp\" 'Mit "\" am Ende !!!
    strDateiname = "Irgendeine Datei.xyz" 'Dateiname bitte anpassen !

    If Dir(strOrdner & strDateiname) <> "" Then StarteDatei (strOrdner & strDateiname)
End Sub

Sub StarteDatei(strDateiname)
  Dim myShell As Object
  Set myShell = CreateObject("WScript.Shell")

  myShell.Run strDateiname
  Set myShell = Nothing
End Sub
Gruß, NoNet


  

Betrifft: AW: Beliebige Datei mit verknüpftem Programm starten von: Axel F
Geschrieben am: 14.01.2010 14:28:38

Hallo NoNet,

vielen Dank, so funktioniert der Start des Programms.
Aber ich muss immer noch in dem externen Programm, welches sich dann öffnet, zwei Mausclicks tätigen. Kann man die auch automatisieren???

Gruß
Axel


  

Betrifft: Nicht so ohne Weiteres evtl. per API... von: NoNet
Geschrieben am: 14.01.2010 14:47:38

Hallo Axel,

nur mit reinen Excel Bordmitteln lässt sich das nicht bewerkstelligen, aber ich könnte mir vorstellen, dass man per API den Handle des geöffneten Programms ermitteln kann und diesem Prozess dann die zwei "Klicks" übergeben kann.

Das müssten allerdings die API-Spezialisten hier im Forum lösen, da ich davon leider keine Ahnung habe ;-)

Gruß, NoNet


  

Betrifft: AW: Nicht so ohne Weiteres evtl. per API... von: Nepumuk
Geschrieben am: 14.01.2010 22:20:44

Hallo NoNet,

so einfach ist das nicht. Wenn ich an dem Rechner sitzen würde und mir alle meine Hilfsmittel zur Verfügung ständen, wär's kein Problem. Aber ein Programm, das du nicht vorliegen hast und auch nicht kennst von außen anzusteuern (bei VBA bescheiden) ist es ein ziemliches.

Versuch mal einem Dreijährigen per Funk alleine einem Jumbojet landen zu lassen, der noch für 5 Minuten Treibstoff im Tank hat. ;-)

Gruß
Nepumuk


  

Betrifft: AW: Nicht so ohne Weiteres evtl. per API... von: MichaV
Geschrieben am: 14.01.2010 22:24:44

"Versuch mal einem Dreijährigen per Funk alleine einem Jumbojet landen zu lassen" ..da fällt mir doch spontan SendKeys ein.

Gruss- Micha


Beiträge aus den Excel-Beispielen zum Thema "In Excel externes Programm starten"