Affichage d'une fenêtre Excel par dessus une autre fenêtre

Résolu
ads31 Messages postés 22 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 27 octobre 2008 - 27 juil. 2008 à 18:15
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 27 juil. 2008 à 21:43
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

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
27 juil. 2008 à 21:38
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.
3
ads31 Messages postés 22 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 27 octobre 2008
27 juil. 2008 à 21:06
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
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
27 juil. 2008 à 21:43
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.
0
Rejoignez-nous