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

A voir également:

10 réponses

cs_Le Pivert Messages postés 8437 Statut Contributeur 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 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
f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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 1092 Statut Membre 16
 
Bonjour,

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

Voir exemple ici:


http://www.cjoint.com/data3/3EvnSvuUsi3.htm
0
f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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 8437 Statut Contributeur 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 8437 Statut Contributeur 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 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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 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
f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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 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
cs_Le Pivert Messages postés 8437 Statut Contributeur 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 1092 Statut Membre 16
 
Bonsoir,

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

Tu as un soucis avec HandleUF non ?
0
f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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 1092 Statut Membre 16
 
Bonjour,

Cela ne change rien...
0
f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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 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
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Bien sur que c'est un souci. Mais sans code comment veux tu que l'on t'aide!!!!!!!!!!!!!
0
f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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 1092 Statut Membre 16
 
Bonjour,

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

Merci de votre aide.

TS
0