Herbers Excel-Forum - das Archiv

zweite Excelinstanz verhindern erste Instanz aufru

Bild

Betrifft: zweite Excelinstanz verhindern erste Instanz aufru
von: Reinhard

Geschrieben am: 14.02.2005 15:17:42
Hallo Wissende,
folgender Code schliesst Excel wenn schon eine Excel-Instanz besteht.
Man sieht dann den Desktop von Windows.
Wie kann ich es erreichen dass zur ersten Instanz "gesprungen" wird?
Die untenstehende Funktion ExcelInstanzen liefert mir die Anzahl der Instanzen und mit folgendem Code wird dann der Start abgebrochen
in "DieseArbeitsmappe" von personl.xls:
Private Sub Workbook_Open()
If ExcelInstanzen() > 1 Then
MsgBox "Excel läuft schon, diese Excel-Instanz wird geschlossen"
Application.Quit
End If
End Sub

Gruß
Reinhard
In "Modul1" von personl.xls:
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, _
ByVal wCmd As Long) As Long
Private Declare Function GetClassName& Lib "user32" Alias _
"GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName _
As String, ByVal nMaxCount As Long)
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Function ExcelInstanzen() As Long
Dim Länge&, Instanzen&, hwnd&
Dim Klassenname As String
hwnd = GetWindow(GetDesktopWindow, GW_CHILD)
Do
Klassenname = String(51, 0)
Länge = GetClassName&(hwnd, Klassenname, 50)
If Left(Klassenname, Länge) = "XLMAIN" Then Instanzen = Instanzen + 1
hwnd = GetWindow(hwnd, GW_HWNDNEXT)
Loop While hwnd <> 0
ExcelInstanzen = Instanzen
End Function

Bild

Betrifft: AW: zweite Excelinstanz verhindern erste Instanz a
von: RALF

Geschrieben am: 18.02.2005 09:42:46
Moin,

wenn Du Anwendungen schon durchsuchst, dann bring Dir gleich die Bezeichnung der ersten Excelinstanz mit und verwende diese
AppActivate Bezeichnung
müßte AppActivate "Microsoft Excel" lauten....bin aber nicht sicher...probiers
Gruß
RALF
 Bild
Excel-Beispiele zum Thema "zweite Excelinstanz verhindern erste Instanz aufru"
Zellinhalt in zweitem Blatt ermitteln Modul in einer zweiten Arbeitsmappe löschen
Nummer aus zweiter Datei abrufen Übernahme von Werten mit "x" in eine zweite Tabelle
Datensätze in zweitem Blatt anders anordnen Den vorhergehenden Zellwert in einer zweiten Zelle zeigen
Jede zweite Spalte drucken Durch DoppelKlick Spalte in zweites Arbeitsblatt kopieren
Wert in Tabellenblatt suchen und alle Fundwerte in zweite Tabelle In einem zweiten Tabellenblatt vorgegebene Zeilen beschriften