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, à 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 classeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Option Explicit Private Sub UserForm_Initialize() treebuttons Me End Sub
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Partager