Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Evènement pour Feuil1 au 1er plan ?

2 réponses
Avatar
LANIMAL
Bonjour,
Le fichier toto.xls est ouvert (ainsi que d'autres fichiers .doc, etc.)

Je voudrai exécuter un code évènementiel "Code" chaque fois que Feuil1
de tot.xls re-apparait à l'écran. 3 cas sont possibles :

1 - Private Sub Workbook_Open() convient quand on ouvre toto.xls

2 - Private Sub Worksheet_Activate()convient quand, après avoir activé
une autre feuille à l'intérieur de toto.xls, on revient à Feuil1.

3 - Dans le cas où toto.xls est passé en arrière-plan du fait de
l'affichage d'un autre fichier, comment faire pour que le code "Code"
s'exécute lors du rappel au premier plan de toto.xls
Quelle sub évènementielle ? - et où l'écrire ?
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
convient-elle ? - Je n'ai pas su m'en débrouiller.

Rem. : aucune feuille n'est masquée, donc ce n'est pas un pb de
démasquage (Visible = True / False)

Merci

2 réponses

Avatar
Mishell
Bonjour.

Il n'y a pas d'événement dans Excel pour ce que tu veux.
Mais tu peux vérifier le résultat obtenu de l'API
GetForegroundWindow
Voici un exemple d'utilisation
http://www.vbfrance.com/code.aspx?ID'273

Mishell


"LANIMAL" wrote in message
news:
Bonjour,
Le fichier toto.xls est ouvert (ainsi que d'autres fichiers .doc, etc.)

Je voudrai exécuter un code évènementiel "Code" chaque fois que Feuil1 de
tot.xls re-apparait à l'écran. 3 cas sont possibles :

1 - Private Sub Workbook_Open() convient quand on ouvre toto.xls

2 - Private Sub Worksheet_Activate()convient quand, après avoir activé une
autre feuille à l'intérieur de toto.xls, on revient à Feuil1.

3 - Dans le cas où toto.xls est passé en arrière-plan du fait de
l'affichage d'un autre fichier, comment faire pour que le code "Code"
s'exécute lors du rappel au premier plan de toto.xls
Quelle sub évènementielle ? - et où l'écrire ?
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
convient-elle ? - Je n'ai pas su m'en débrouiller.

Rem. : aucune feuille n'est masquée, donc ce n'est pas un pb de démasquage
(Visible = True / False)

Merci


Avatar
Mishell
Voici un exemple d'utilisation :

Private Declare Function GetWindowTextLength Lib "user32" Alias
"GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function GetForegroundWindow Lib "user32" () As Long

Public Function GetActiveWindowApp() As String
Dim hWndlength As Long, hWndTitle As String, returnvalue As Long
Dim hwnd As Long
hwnd = GetForegroundWindow
hWndlength = GetWindowTextLength(hwnd)
hWndTitle = String$(hWndlength, 0)
returnvalue = GetWindowText(hwnd, hWndTitle, (hWndlength + 1))
GetActiveWindowApp = hWndTitle
End Function

Private Sub Test()
MsgBox GetActiveWindowApp()
End Sub


"Mishell" wrote in message
news:
Bonjour.

Il n'y a pas d'événement dans Excel pour ce que tu veux.
Mais tu peux vérifier le résultat obtenu de l'API
GetForegroundWindow
Voici un exemple d'utilisation
http://www.vbfrance.com/code.aspx?ID'273

Mishell


"LANIMAL" wrote in message
news:
Bonjour,
Le fichier toto.xls est ouvert (ainsi que d'autres fichiers .doc, etc.)

Je voudrai exécuter un code évènementiel "Code" chaque fois que Feuil1 de
tot.xls re-apparait à l'écran. 3 cas sont possibles :

1 - Private Sub Workbook_Open() convient quand on ouvre toto.xls

2 - Private Sub Worksheet_Activate()convient quand, après avoir activé
une autre feuille à l'intérieur de toto.xls, on revient à Feuil1.

3 - Dans le cas où toto.xls est passé en arrière-plan du fait de
l'affichage d'un autre fichier, comment faire pour que le code "Code"
s'exécute lors du rappel au premier plan de toto.xls
Quelle sub évènementielle ? - et où l'écrire ?
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
convient-elle ? - Je n'ai pas su m'en débrouiller.

Rem. : aucune feuille n'est masquée, donc ce n'est pas un pb de
démasquage (Visible = True / False)

Merci