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

Excel in Hintergrund - Sub starten

Excel in Hintergrund - Sub starten
23.08.2005 17:53:23
Aaron
Hallo,
eine vermutlich simple Frage, aber ich würge bereits geraume Zeit daran 'rum:
wenn ich z.B. mit ALT + TAB zu einer anderen Anwendung wechsle, mithin das Excel-Window in den Hintergrund kommt, soll ein Makro ausgeführt werden (das bestimmte Windows-Einstellungen wieder herstellt).
Workbook-Deactivate etc.-Ereignisse scheinen alle nicht zu greifen, gibt's ein workaround, etwa via API?
Bin gespannt!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel in Hintergrund - Sub starten
23.08.2005 17:56:27
ransi
hallo
versuch mal das ereigniss:
window_deactivate
zu finden unter "DieseArbeitsmappe"
könnte sein was du suchst...
ransi
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:02:09
Fred
Hi,
Programmwechsel mit alt + tab löst in Excel kein Ereignis aus.
mfg Fred
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:05:04
Nepumuk
Hi Aaron,
ein Beispiel. Das arbeitet zwar genau ander herum, aber du kannst es dir sicher anpassen.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call prcStop
End Sub

Private Sub Workbook_Open()
    bolActiv = True
    Call prcStart
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Option Private Module

Private Declare Function SetTimer Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal nIDEvent As Long) As Long
Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long

Private lnghWnd As Long
Public bolActiv As Boolean

Public Sub prcStart()
    lnghWnd = FindWindow("XLMAIN", Application.Caption)
    SetTimer lnghWnd, 0, 10, AddressOf TimerProc
End Sub

Public Sub prcStop()
    KillTimer lnghWnd, 0
End Sub

Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, _
        ByVal uElapse As Long, ByVal lpTimerFunc As Long)

    If GetActiveWindow = lnghWnd Then
        If Not bolActiv Then
            Call prcYour_Procedur
            bolActiv = True
        End If
    Else
        bolActiv = False
    End If
End Sub

Public Sub prcYour_Procedur()
    Static intIndex As Integer
    intIndex = intIndex + 1
    MsgBox "Excel become the focus " & CStr(intIndex) & ". Time", 64, "Info"
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:10:08
Leo
Hi,
warum eigentlich lnghWnd = FindWindow("XLMAIN", Application.Caption), Excel 2000
hat doch Application.Hwnd?
mfg leo
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:17:26
Nepumuk
Hi Leo,
nee, leider nicht. Die gibt's erst ab XP.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:32:18
Leo
Hi,
aha, danke für die Nachhilfe.
mfg Leo
AW: Excel in Hintergrund - Sub starten
24.08.2005 11:16:38
Aaron
Hallo,
vielen, vielen Dank! Ich denke, das Konstrukt von Nepomuk ist der Clou!
Auf so'n "AddressOf"-Gedöns und Timer-Funktionen bin ich noch nicht trainiert - fängt jetzt also an.
Hier lernt wirklich 'was!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige