Symbôle Réduire dans un Userform

thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   -  
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   -
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

A voir également:

10 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   16
 
Ah mais tous vos fichiers fonctionnent.

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

Pouvez vous nous mettre a dispo votre fichier avec seulement le VBA (sans le contenu des feuilles excel)
0
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   16
 
Bonjour,

Si je supprime des choses, l'userform ne s'execute pas. Ce n'est pas un soucis ?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Voir exemple ici:


http://www.cjoint.com/data3/3EvnSvuUsi3.htm
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
il faut lire:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.Visible = True 'rendre Excel visible
End Sub
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Cela fonctionne chez moi.

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

SetWindowLong HandleUF, GWL_WNDPROC, BaseUFProc
0
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   16
 
Bonsoir,

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

Tu as un soucis avec HandleUF non ?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re bonjour a vous deux,

GWL_WNDPROC est une constante qui doit etre egale a -4

a voir: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowlonga?redirectedfrom=MSDN

BaseUFProc: c'est un machin dont le code VBA de definition manque , mais cette ligne ne vous sert a rien puisque vous fermez l'application excel
0
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   16
 
Bonjour,

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

un fichier avec votre code modifie (mise en commentaire de ce qui ne sert a rien): https://www.cjoint.com/?DEConNul5g8
0
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bien sur que c'est un souci. Mais sans code comment veux tu que l'on t'aide!!!!!!!!!!!!!
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
thesentry Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   16
 
Bonjour,

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

Merci de votre aide.

TS
0