Application en avant plan

Bonjour a tous, est-il possible de mettre toujours en avant plan une application, meme si on active une autre fenetre (application)? J'aimerais qu'elle ne se retrouve pas en dessous de la fenetre (application) active.

Bonjour,

C'est possible avec API mais attention, prudence tout de même :

Private Declare Function 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) As Long

Sub PremierPlan()
    '-1 = toujours au premier plan, -2 = normal
    SetWindowPos Application.hwnd, -1, 0, 0, 0, 0, &H2 Or &H1

End Sub

Hervé.

Salut! je me debrouille de plus en plus en VBA mais je suis un peu embeter avec ton code ?

Ou dois-je specifier l'application que je veux placer en avant plan?

Bonjour,

"Application.hwnd" est le handle de l'application (un Long unique donné par Windows pour identifier chaque applications ouverte). Ici pour l'exemple, comme le code est dans Excel, c'est donc l'application Excel qui est visée car la propriété "hwnd" retourne le handle de l'application.

Si tu ne connais pas le handle de l'application visée, regarde du coté de FindWindow en lui passant le Caption de cette dernière comme par exemple pour l'application Word qui contient un document nommé "Document1.doc" le Caption peut être "Document1.doc – Microsft Word".

Hervé.

Ton code me donne une erreur lorsque je le met dans un module, "seul des commentaires peuvent etre mis apres un end sub.

As-tu un idee?

Rebonjour, VBA n'accepte pas Lib "user32", j'ai du l'effacer de la fonction. Pour ce qui est du nom de document a mettre dans le Sub PremierPlan, je n'ai aucune idee. Comment faire un FindWindow?

Je n'ai pas assez de connaissance, alors si tu pouvais me donner un autre exemple ce serait aprecie.

Bonjour,

Teste ceci en adaptant :

Private Declare Function 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) As Long

Private Declare Function FindWindowA _
                Lib "user32" ( _
                ByVal lpClassName As String, _
                ByVal lpWindowName As String) As Long

Sub PremierPlan()

    Dim hwnd As Long

    hwnd = FindWindowA(vbNullString, "Document1.doc – Microsft Word")

    '-1 = toujours au premier plan, -2 = normal
   SetWindowPos hwnd, -1, 0, 0, 0, 0, &H2 Or &H1

End Sub

Hervé.

Cool, ca fonctionne, j'ignorais ce qu'etait un caption et je ne declarais pas les fonctions au debut du module!

J'ai essaye de modifier les autres parametres comme la taille de la fenetre a 400 pixels en x et y mais il ne se passe rien. Ce n'est pas obligatoire pour moi mais as-tu une idee?

Sub PremierPlan()
        Dim hwnd As Long, text As Long
        hwnd = FindWindowA(vbNullString, "Z80 Simulator IDE")

        '-1 = toujours au premier plan, -2 = normal
      SetWindowPos hwnd, -1, 0, 400, 400, 0, &H2 Or &H1   
End Sub
Rechercher des sujets similaires à "application plan"