IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Userform visible dans Barre des tâches [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 50
    Points : 34
    Points
    34
    Par défaut Userform visible dans Barre des tâches
    Bonjour,

    Est-il possible d'avoir un "raccourci" userform dans le barre des tâches.

    le problême actuellement, qu'and j'ai plusieurs applications ouvertes, si je clique en dehors de mon userform, je suis obligé de toutes les minimisées pour avoir à nouveau acès a mon Userform... pas très pratique.

    J'imagine que c'est tout bête.
    Merci d'avance.

  2. #2
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Je ne comprends pas bien, si tu cliques sur l'excel dans la barre des tâches, tu ne reviens pas sur ton userform ?
    « Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Si tu as caché l'application Excel, je crois qu'il n'y a pas de solution simple.

    Peut-être par les apis mais je n'ai jamais creusé cette piste par manque de temps.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Avec APIs, la form sera toujours au premier plan dans n'importe quelle application lancée (pas sûr que ce soit idéal ?) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    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
     
    Private Sub UserForm_Initialize()
     
        Dim Position As Long
        Dim Hwnd As Long
        Dim Hauteur As Long
        Dim Largeur As Long
     
        With Me
     
            Hauteur = .Height
            Largeur = .Width
     
            Hwnd = FindWindowA(vbNullString, .Caption)
     
            Position = SetWindowPos(Hwnd, -1, _
                                    .Top, _
                                    .Left, _
                                    .Width, _
                                    .Height, 0)
     
            .Width = Largeur
            .Height = Hauteur
     
        End With
     
    End Sub
    Hervé.

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Oups,

    J'ai lu trop vite, désolé.
    Pour avoir la form dans la barre des tâches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    Private Declare Function FindWindow _
                    Lib "user32" _
                    Alias "FindWindowA" ( _
                    ByVal lpClassName As String, _
                    ByVal lpWindowName As String) As Long
     
    Private Declare Function EnableWindow _
                    Lib "user32" ( _
                    ByVal hWnd As Long, _
                    ByVal fEnable As Long) As Long
     
    Private Declare Function ShowWindow _
                    Lib "user32" ( _
                    ByVal hWnd As Long, _
                    ByVal nCmdShow As Long) As Long
     
    Private Declare Function SetWindowLong _
                    Lib "user32" _
                    Alias "SetWindowLongA" ( _
                    ByVal hWnd As Long, _
                    ByVal nIndex As Long, _
                    ByVal dwNewLong As Long) As Long
     
    Private Declare Function GetWindowLong _
                    Lib "user32" _
                    Alias "GetWindowLongA" ( _
                    ByVal hWnd As Long, _
                    ByVal nIndex As Long) As Long
     
     
     
    Private Sub UserForm_Activate()
     
        Dim hWnd As Long
     
        hWnd = FindWindow(vbNullString, Me.Caption)
        EnableWindow FindWindow(vbNullString, Application.Caption), True
        ShowWindow hWnd, 0
        SetWindowLong hWnd, -20, GetWindowLong(hWnd, -20) Or &H40000
        Me.Repaint
        ShowWindow hWnd, 5
     
    End Sub
    Hervé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/10/2014, 03h43
  2. Agenda perso dans barre des tâches
    Par urdy17 dans le forum Outlook
    Réponses: 0
    Dernier message: 14/05/2012, 10h22
  3. Masquer nouveau shell dans barre des tâches Windows?
    Par pssst dans le forum SWT/JFace
    Réponses: 7
    Dernier message: 13/05/2009, 13h05
  4. Fenetre Application dans barre des tâches
    Par Juste_Une_IlluZion dans le forum C++Builder
    Réponses: 3
    Dernier message: 09/07/2006, 10h53
  5. Réponses: 4
    Dernier message: 07/01/2006, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo