Comment réduire un userform

  • Initiateur de la discussion Initiateur de la discussion teddy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

teddy

Guest
Bonjour,

Je cherche à minimiser un userform automatiquement en lieu et place de cliquer sur l'icone "Minimize" de la barre de menu.

Si quelqu'un sait, ....... Merci beaucoup.
Teddy
 
Salut,

Colles ceci dans le module de ton USF, cela te rajoutera un bouton de réduction:

'www.allapi.com
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

A+++
 
Bonjour,

Merci pour ce code, mais ....... ce n'est pas cela que je veux 😱((

Je souhaite déclencher la réduction par une ligne de code suite à un événement de mon application sans action de l'utilisateur.

Comme je sui optimiste, j'attends 😱))

@+
Teddy
 
Salut,

Pour réduire dans la barre des tâches, à partir d'un bouton par exemple

Private Declare Function FindWindow& Lib "User32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function SetWindowLong& Lib "User32" Alias "SetWindowLongA" (ByVal Hwnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function ShowWindow& Lib "User32" (ByVal Hwnd&, ByVal nCmdShow&)

Dim Hwnd&

Private Sub CommandButton1_Click() 'le bouton en question
ShowWindow Hwnd, 2 '3 pour agrandir,1 normal, et unload me pour quitter
End Sub

Private Sub UserForm_Activate()
ShowWindow Hwnd, 0
SetWindowLong Hwnd, -20, &H40101
ShowWindow Hwnd, 1
End Sub

Private Sub UserForm_Initialize()
Hwnd = FindWindow(vbNullString, Me.Caption)
End Sub

Il ne faut pas oublier de mettre en mode modal au lancement de ton USF (nomusf.show 0) pour pouvoir écrire dans tes cellules.

A+++
 
Zon

Juste pour te dire que j'ai essayé tes procédures et que cela fonctionne au poil, si ce n'est que la seconde se minimise dans la feuille excel mais pas dans la barre de tâches.

Par contre, et c'est là ma demande, si tu repasses par ici, où avoir de l'aide pour ces fonctions totalement ignorées (apparemment) dans l'aide VBA, afin de comprendre un petit peu ?

Merci d'avance si tu veux bien me dévoiler un peu de tes sources et bonne soirée.

François.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
281
Réponses
7
Affichages
401
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
  • Question Question
XL 2019 User Form
Réponses
9
Affichages
360
Réponses
1
Affichages
252
Retour