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

separates Excel öffnen

separates Excel öffnen
27.03.2008 09:09:34
Mommers
Hallo Freaks
wie kann ich aus einem VBA-Modul heraus eine andere Excel-Datei (Name ist bekannt) öffnen, aber in einer separaten Excel-Sitzung !!!! Und meine aufrufende VBA-Routine muss solange angehalten werden also stoppen, bis diese andere Excel-Datei wieder geschlossen wird !!!
Geht das und wenn ja wie ?
Im Voraus besten Dank
W.Mommers

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: separates Excel öffnen
27.03.2008 11:59:37
Ramses
Hallo
Das geht nur sehr aufwändig über API-Programmierung.
Das solltest du dir bei deinem Level defintiv nicht antun.
Ausserdem ist das "anhalten" nicht möglich, da VBA nicht Multitaskingfähig ist. Da sind einige Workarounds auf API-Ebene nötig um einen ähnlichen "Effekt" zu produzieren.
Gruss Rainer

AW: separates Excel öffnen
27.03.2008 12:47:00
Nepumuk
Hi,
na so schlimm ist es auch wieder nicht. Ein Beispiel:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function OpenProcess Lib "kernel32.dll" ( _
    ByVal dwDesiredAccess As Long, _
    ByVal bInheritHandle As Long, _
    ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" ( _
    ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32.dll" ( _
    ByVal hHandle As Long, _
    ByVal dwMilliseconds As Long) As Long

Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const SYNCHRONIZE = &H100000
Private Const INFINITE As Long = &HFFFFFFFF

Public Sub ShellAndWait()
    Dim lngTaskID As Long, lngProcID As Long, lngExitCode As Long
    lngTaskID = Shell(Application.Path & "\EXCEL.EXE /e C:\Test\Alle_Prozesse.xls", vbNormalFocus)
    lngProcID = OpenProcess(SYNCHRONIZE Or PROCESS_QUERY_INFORMATION, 0&, lngTaskID)
    Call WaitForSingleObject(lngProcID, INFINITE)
    Call CloseHandle(lngProcID)
    AppActivate Application.Caption, True
    MsgBox "Jetzt geht's weiter"
End Sub


Aber Achtung, der Dateiname inklusive Pfad darf keine Leerzeichen enthalten.
Gruß
Nepumuk

Anzeige
AW: separates Excel öffnen
27.03.2008 13:01:38
Ramses
Hallo Max
Damit schliesst du zwar die Datei wieder korrekt, soweit auch kein Problem, aber du müsstest regelmässig die TaskID bzw. ProcID prüfen ob der Anwender die andere Datei nach Bearbeitung wieder geschlossen hat.
Gruss Rainer

AW: separates Excel öffnen
27.03.2008 13:57:00
Nepumuk
Hallo Rainer,
versteh ich jetzt nicht. Da wird doch keine Datei geschlossen. Da wird eine Datei geöffnet und das Programm, welches sie geöffnet hat, wartet 4.294.967.295 Millisekunden ~ 49 Tage (hexadezimal: FFFFFFFF) bis die geöffnete Mappe wieder geschlossen wird.
Gruß
Max

AW: separates Excel öffnen
27.03.2008 18:05:30
Ramses
Hallo Max
Fehler meinerseits, bzw. andere Auffassung.
Ich dachte da zu kompliziert, und wollte mit der ursprünglichen Application weiterarbeiten und dann abfragen wann die andere Datei geschlossen wird.
Gruss Rainer

Anzeige
AW: separates Excel öffnen
27.03.2008 12:41:50
Heiko
Hallo Mommers,
so was ähnliches hatten wir hier schon mal, guckst du hier:
https://www.herber.de/forum/archiv/784to788/t784210.htm#784250
So kannst du schon mal eine EXCEL Datei in einer seperaten Instanz öffnen.
Wie du das mit dem anhalten meinst und was du dann mit der geöffneten Tabelle machen willst kann ich aus deinen Infos nicht ersehen, darum habe ich dazu auch keinen Tipp.
Gruß Heiko
PS: Rückmeldung wäre nett !

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige