Excel starten wenn ...

Dieses Thema Excel starten wenn ... im Forum "Windows XP Forum" wurde erstellt von Condor2007, 24. Dez. 2007.

Thema: Excel starten wenn ... Hallo. Ich habe eien Frage zu Excel. Ich habe eine Datei datser.exe und die conwer.xls. Die conwer.xls, soll nur...

  1. Hallo.

    Ich habe eien Frage zu Excel.

    Ich habe eine Datei datser.exe und die conwer.xls.

    Die conwer.xls, soll nur gestartet werden, wenn die Datei datser.exe bereits aktiv ist. Ansonsten soll die conwer.xls nicht gestartet werden.

    Begründung:
    Durch die datser.exe werden Daten auf dem PC eingespielt, die die Datei conwer.xls verarbeiten soll. Wenn die conwer.xls ohne das die datser.exe gestartet wurde, gestartet wird, dann meckert Excel, da die Quelldaten nicht vorhanden sind.

    Wer kann mir helfen?

    Ich bedanke mich bei allen und wünsche ein paar ganz ganz besondere Tage.

    Condor 2007
     
  2. Hallo Condor2007,

    also man könnte folgendermassen prüfen, ob datser.exe bereits läuft.
    (Unter http://www.vbarchiv.net/archiv/tipp_572.html findet sich die Einbindung der notwendigen Windows-API's)

    In deiner conwer.xls in einem Modul sollte folgender Code liegen:
    Code:
    Option Explicit
    Option Private Module
    
    '======================================================
    'Ursprung: [url]http://www.vbarchiv.net/archiv/tipp_572.html[/url]
    '======================================================
    
    ' zunächst die benötigten API-Deklarationen
    Private Declare Function CreateToolhelpSnapshot Lib _
     Kernel32 Alias CreateToolhelp32Snapshot ( _
     ByVal lFlgas As Long, ByVal lProcessID As Long) _
     As Long
     
    Private Declare Function ProcessFirst Lib Kernel32 _
     Alias Process32First (ByVal hSnapshot As Long, _
     uProcess As PROCESSENTRY32) As Long
     
    Private Declare Function ProcessNext Lib Kernel32 _
     Alias Process32Next (ByVal hSnapshot As Long, _
     uProcess As PROCESSENTRY32) As Long
     
    Private Declare Sub CloseHandle Lib Kernel32 ( _
     ByVal hPass As Long)
    
    Private Const TH32CS_SNAPPROCESS As Long = 2&
    Private Const MAX_PATH As Long = 260
     
    Private Type PROCESSENTRY32
     dwSize As Long
     cntUsage As Long
     th32ProcessID As Long
     th32DefaultHeapID As Long
     th32ModuleID As Long
     cntThreads As Long
     th32ParentProcessID As Long
     pcPriClassBase As Long
     dwflags As Long
     szexeFile As String * MAX_PATH
    End Type
    ' Prüft, ob eine EXE-Datei bereits ausgeführt wird
    Function IsEXERunning(ByVal sFilename As String) As Long
     
     Dim lSnapshot As Long, uProcess As PROCESSENTRY32, nResult As Long
     
    -> Snapshot des aktuellen Prozess ermitteln
     lSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
     If lSnapshot <> 0 Then
      uProcess.dwSize = Len(uProcess)
      
     -> Ersten Prozess ermitteln
      nResult = ProcessFirst(lSnapshot, uProcess)
      
      Do Until nResult = 0
      -> Prozessliste durchlaufen
       If InStr(LCase$(uProcess.szexeFile), LCase$(sFilename)) > 0 Then IsEXERunning = True: Exit Do
       nResult = ProcessNext(lSnapshot, uProcess)
      Loop
      CloseHandle lSnapshot
     End If
    End Function
    In der Code-Seite der Mappe(DieseArbeitsmappe) sollte dann folgender Code liegen:
    Code:
    Private Sub Workbook_Open()
     Dim sDietrich As String
     sDietrich = ThisWorkbook.Path & Application.PathSeparator & OeffneMich.txt
     If Dir(sDietrich, vbNormal) <>  Then Exit Sub
     If Not IsEXERunning(datser.exe) Then
      MsgBox Mappe wird geschlossen, weil datser.exe nicht läuft.
      ThisWorkbook.Close SaveChanges:=False
     End If
    End Sub
    Wie du siehst, hab ich dir noch einen Dietrich eingefügt:
    Liegt im Verzeichnios der Mappe eine Text-Datei names OeffneMich.txt, dann öffnet sich die Datei, auch wenn die datser.exe nicht läuft. So kannst immer an die Datei / Makros kommen.

    Gruß Matjes :)
     
  3. Danke ! ! !

    Das Problem ist gelößt.

    Gruß, Condor.
     
Die Seite wird geladen...

Excel starten wenn ... - Ähnliche Themen

Forum Datum
Word u. Excel starten verzögert, wenn Dokumente direkt geöffnet werden Microsoft Office Suite 28. Juni 2012
Excel 2010 maximiert starten Microsoft Office Suite 9. Aug. 2010
MS Excel: Fehler beim Starten Von MS-Hilfe - Problem evtl. bekannt? Microsoft Office Suite 9. Mai 2010
Beim Starten von Excel-Addin Menüeintrag aktivieren Microsoft Office Suite 19. Juni 2006
Excel20023: Zellen beim Starten per Abfrage ausfüllen Microsoft Office Suite 11. Nov. 2005