Affichage d'une fenêtre Excel par dessus une autre fenêtre [Résolu]

Signaler
Messages postés
22
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
27 octobre 2008
-
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
-
Bonjour,

Dans un classeur Excel, grâce à une macro, un message s'affiche à une heure précisse. Mais si une application est ouverte, style Internet Explorer, j'ai juste l'"icône" de Excel dans la barre de tâche qui clignote.
Est-il possible que la fenptre d'Excel s'affiche par dessus la fenêtre d'Internet Explorer (ou autre)?

Pour la partie code, j'utilise MsgBox pour afficher le message et c'est  Application.OnTime qui permet de lancer l'affichage à une heure donnée.

Merci d'avance.

3 réponses

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir,

J'ai cherché différente façon de faire, et je suis arrivé un peu à ce que tu veux...

Dans un module mettre le code suivant :

Private Declare Sub SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long



' constantes
Private Const HWND_TOPMOST = -&H1
Private Const HWND_NOTOPMOST = -&H2
Private Const HWND_BOTTOM = 1
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2



Function StayOnTop(Optional OnTop As Boolean)



    If OnTop = True Then
        Call SetWindowPos(Application.hWnd, HWND_TOPMOST, 0&, 0&, 0&, 0&, (SWP_NOSIZE Or SWP_NOMOVE)) ' Active 1er Plan
    Else
        Call SetWindowPos(Application.hWnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, (SWP_NOSIZE Or SWP_NOMOVE))  ' Désactive 1er Plan
    End If



End Function


=

Puis une Userform1, avec un bouton avec le code suivant :

=


Private Sub CommandButton1_Click()



Call ShowWindow(Application.hWnd, 1)
temps = Timer
Do
Loop Until Timer - temps > 3 ' attente 3 secondes



Call ShowWindow(Application.hWnd, 0)
StayOnTop True
MsgBox "Et ça marche !"
StayOnTop False




End Sub



=

Maintenant à toi de voir...

En espérant que cela te donne un bon début à étudier...

Amicalement,
Us.
Messages postés
22
Date d'inscription
mercredi 19 décembre 2007
Statut
Membre
Dernière intervention
27 octobre 2008

J'ai continuer mes recherches et mes essais, et avec:
 Application.WindowState = xlMaximized
j'arrive à faire afficher ma feuille Excel quand j'ai pensé à réduire la fênetre avant d'aller sur internet explorer. C'est déjà mieux mais le hic c'est que si j'oublie de réduire la fenêtre ça ne le fait pas.
Donc si quelqu"un a une meilleure solution, je suis preneuse
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Dernier conseil... Fait attention à ne pas rester avec une fenêtre inactive non accessible si tu joues avec les différents paramètres notamment avec ShowWindow... Sinon, il reste ALT+ TAB pour passer d'une application à l'autre pour te sauver la mise...

Amicalement,
Us.