Bonjour, à l'instar de navigateurs, je souhaite pouvoir reduire un userform non modal pour pouvoir accéder à une feuille de calcul
et que l'utilisateur puisse le rétablir
cordialement
Version imprimable
Bonjour, à l'instar de navigateurs, je souhaite pouvoir reduire un userform non modal pour pouvoir accéder à une feuille de calcul
et que l'utilisateur puisse le rétablir
cordialement
Bonjour,
Dans un module standard :
Dans le module du formulaire, ajouter le bouton "Minimize" :Code:
1
2
3
4
5
6
7
8 Option Explicit Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Public Const WS_CAPTION = &HC00000 'Titre Public Const WS_MAXIMIZEBOX = &H10000 'Maximisable Public Const WS_MINIMIZEBOX = &H20000 'Minimisable Public Const WS_SIZEBOX = &H40000 'Redimensionnable
Code:
1
2
3
4
5
6 Option Explicit Private Sub UserForm_Initialize() Dim hnd As Long hnd = FindWindow("ThunderDFrame", Me.Caption) SetWindowLong hnd, -16, GetWindowLong(hnd, -16) Or (WS_CAPTION + WS_MINIMIZEBOX) '* End Sub
Désolé Patrice
mais dans le module standard, les 3 premières ligne sont en rouge je dois les marquer ?? avec psftr ??
le bouton, c'est un bouton standard ?
@+
Re,
Pour 32 et 64 bits, dans le module standard :
Le bouton minimize est celui qui existe dans toute fenêtre standard en haut à droite (le — à gauche de la croix de fermeture)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Option Explicit #If Win64 Then Public Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr Public Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As LongPtr, ByVal dwNewLong As LongPtr) As LongPtr Public Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As LongPtr) As LongPtr #Else Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long #End If Public Const WS_CAPTION = &HC00000 'Titre Public Const WS_MAXIMIZEBOX = &H10000 'Maximisable Public Const WS_MINIMIZEBOX = &H20000 'Minimisable Public Const WS_SIZEBOX = &H40000 'Redimensionnable
re
une version abrégée
module standard
module userformCode:
1
2
3
4
5
6
7
8
9
10
11
12 Option Explicit #If Win64 Then Declare PtrSafe Function FWA Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr Declare PtrSafe Function SWL Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As LongPtr, ByVal dwNewLong As LongPtr) As LongPtr #Else Declare Function FWA Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare Function SWL Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long #End If ' Sub treebuttons(usf) SWL FWA(vbNullString, usf.Caption), -16, &H94CF0080 End Sub
le reparametrage de la caption n'est pas dans le userform de facon a ce que ca puisse servir a tes eventuels autres userform de ton classeurCode:
1
2
3
4 Option Explicit Private Sub UserForm_Initialize() treebuttons Me End Sub