Comment réduire un userform

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
 
Z

Zon

Guest
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+++
 
T

teddy

Guest
Bonjour,

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

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 :eek:))

@+
Teddy
 
Z

Zon

Guest
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+++
 
F

François l'aîné

Guest
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.
 

Discussions similaires

Réponses
22
Affichages
683
Réponses
2
Affichages
271

Statistiques des forums

Discussions
312 310
Messages
2 087 110
Membres
103 472
dernier inscrit
garnoux57