Symbôle Réduire dans un Userform

thesentry Messages postés 1092 Statut Membre -  
thesentry Messages postés 1092 Statut Membre -
Bonjour,

J'aimerais avoir la possibilité de réduire un userform en cours d'execution et qu'il reste dans la barre de tâches de Windows.

comment faire ?

J'ai trouvé ce code :

Private Declare Function FindWindowA& Lib "User32" (ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function EnableWindow& Lib "User32" (ByVal hWnd&, ByVal bEnable&)
Private Declare Function GetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&)
Private Declare Function SetWindowLongA& Lib "User32" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)

Private Sub UserForm_Activate()
EnableWindow FindWindowA("XLMAIN", Application.Caption), 1
End Sub

Private Sub UserForm_Initialize()
Dim hWnd As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000
End Sub

Mais ça ne fonctionne pas.

Merci

10 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Rassure nous, le fichier que t'a transmis f894009 fonctionne sur ta machine. Si ce n'est pas le cas il y a un autre problème. Tous les fichiers que nous t'avons transmis fonctionnent tel quel sans aucune modification!
    1
    1. thesentry Messages postés 1092 Statut Membre 16
       
      Ah mais tous vos fichiers fonctionnent.

      Dès que je les mets dans mon code à moi, ça ne fait rien.
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re bonjour, a vous deux,

      Pouvez vous nous mettre a dispo votre fichier avec seulement le VBA (sans le contenu des feuilles excel)
      0
    3. thesentry Messages postés 1092 Statut Membre 16
       
      Bonjour,

      Si je supprime des choses, l'userform ne s'execute pas. Ce n'est pas un soucis ?
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Ce code marche tres bien, mais il a pour but de reduire une UF en bas a gauche de l'ecran, pas de mettre l'UF reduite dans la barre de tache
    0
  3. thesentry Messages postés 1092 Statut Membre 16
     
    Bonjour,

    Merci pour votre réponse. Mais cela ne me dit pas comment je peux parvenir à mes fins.

    De plus, lorsqu'un utilisateur lance Excel, l'userform s'exécute automatiquement. Mais il n'apparaît pas dans la barre des tâches. Comment faire ?

    Merci
    0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Voir exemple ici:

    http://www.cjoint.com/data3/3EvnSvuUsi3.htm
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Meme chose, Thesentry veut que l'UF soit dans la barre de tache (comme il est possible en VB6,VB.net mais pas en VBA), pas en bas de l'ecran a gauche.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Ce ne sera pas dans la barre de tâche mais en bas à gauche:

    Mettre dans ThisWorkBook:

    Option Explicit
    Private Sub Workbook_Open()
    UserForm1.Show vbModeless
    Application.Visible = False 'rendre Excel invisible
    End Sub
    


    et dans l'UserForm:

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Application.Visible = True 'rendre Excel invisible
    End Sub
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      il faut lire:

      Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
      Application.Visible = True 'rendre Excel visible
      End Sub
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Ce ne sera pas dans la barre de tâche mais en bas à gauche: -----> Oui, mais ce n'est pas cela que Thesentry veut
      0
    3. thesentry Messages postés 1092 Statut Membre 16
       
      Si vous dites que c'est pas possible en VBA, on ne va pas chercher à faire qqch d'impossible.

      Au pire, si la seule solution est en bas à gauche, ben ça sera comme ça.
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Disons que jusqu'a maintenant, personne ne l'a fait ou si quelqu'un a reussit, il ne l'a pas fait savoir
      0
    5. thesentry Messages postés 1092 Statut Membre 16
       
      Rebonsoir,

      Ah oui d'accord. Je vois le truc. Il fallait me le dire dès le début.
      Ben un rétrécissement en bas à gauche, ça me va aussi.

      Mais même ça, ça ne fonctionne pas.
      0
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Cela fonctionne chez moi.

    Par contre chez une erreur sur cette ligne à la fermeture:

    SetWindowLong HandleUF, GWL_WNDPROC, BaseUFProc
    0
    1. thesentry Messages postés 1092 Statut Membre 16
       
      Bonsoir,

      Ben m**de ! Je ne comprends pas là...

      Tu as un soucis avec HandleUF non ?
      0
    2. thesentry Messages postés 1092 Statut Membre 16
       
      Bonjour,

      Cela ne change rien...
      0
  8. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    un fichier avec votre code modifie (mise en commentaire de ce qui ne sert a rien): https://www.cjoint.com/?DEConNul5g8
    0
    1. thesentry Messages postés 1092 Statut Membre 16
       
      Bonjour,

      Non ben toujours pas... Il y a quelque chose qui ne doit pas se faire correctement mais je ne peux pas vous transmettre le fichier complet.

      Je ne vois vraiment pas.
      0
  9. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bien sur que c'est un souci. Mais sans code comment veux tu que l'on t'aide!!!!!!!!!!!!!
    0
  10. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a vous deux,

    Thesentry: si votre UF ne se "lance" pas parce que vous avez supprime des donnees, aucune importance, comme l'a ecrit cs_le pivert, il nous faut votre code complet sans donnees
    0
  11. thesentry Messages postés 1092 Statut Membre 16
     
    Bonjour,

    Je ne peux pas vous fournir le code. Laissez tomber donc.

    Merci de votre aide.

    TS
    0