Evènement pour Feuil1 au 1er plan ?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mishell
Le #19423561
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" 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


Mishell
Le #19423651
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" 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" 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






Publicité
Poster une réponse
Anonyme