Symbôle Réduire dans un Userform

Fermé
thesentry Messages postés 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 - 20 mai 2014 à 15:21
thesentry Messages postés 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 - 2 juin 2014 à 16:24
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

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
28 mai 2014 à 15:19
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 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
28 mai 2014 à 15:43
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
28 mai 2014 à 16:22
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 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
30 mai 2014 à 09:28
Bonjour,

Si je supprime des choses, l'userform ne s'execute pas. Ce n'est pas un soucis ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
20 mai 2014 à 17:50
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 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
21 mai 2014 à 11:35
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
21 mai 2014 à 13:46
Bonjour,

Voir exemple ici:


http://www.cjoint.com/data3/3EvnSvuUsi3.htm
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
21 mai 2014 à 14:29
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
21 mai 2014 à 14:50
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
21 mai 2014 à 14:51
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
21 mai 2014 à 15:16
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 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
21 mai 2014 à 17:05
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
21 mai 2014 à 17:15
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 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
21 mai 2014 à 20:07
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
27 mai 2014 à 16:43
Cela fonctionne chez moi.

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

SetWindowLong HandleUF, GWL_WNDPROC, BaseUFProc
0
thesentry Messages postés 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
Modifié par thesentry le 27/05/2014 à 16:45
Bonsoir,

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

Tu as un soucis avec HandleUF non ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 27/05/2014 à 18:40
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 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
28 mai 2014 à 09:48
Bonjour,

Cela ne change rien...
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
28 mai 2014 à 14:14
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 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
28 mai 2014 à 15:07
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
30 mai 2014 à 16:29
Bien sur que c'est un souci. Mais sans code comment veux tu que l'on t'aide!!!!!!!!!!!!!
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
30 mai 2014 à 19:21
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 874 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 22 février 2020 16
2 juin 2014 à 16:24
Bonjour,

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

Merci de votre aide.

TS
0