Réduire un Userform dans barre de tâche
Alors regarde ce que fait ce code, inséré dans un CommandButton1_Click() d'un nouvel Userform :
Private Sub CommandButton1_Click()
Me.Move Me.Left, Me.Top, Me.Width / 2, Me.Height / 2
End SubOui c'est l'idée.
je suis passé par 2 USF différente avec dans le premier un bouton spécifique pour cacher le USF1 et afficher le USF2 placé en haut gauche de l'écran, puis dans le 2eme USF juste un bouton pour réafficher le USF1.
Pour l'instant, je vais me contenter de ça mais si jamais vous savez comment faire ça avec uniquement 1 seul USF en jouant sur la dimension de celui-ci ET un toggle boutton je suis preneur
Dans l'idéal, il faudrait que le bouton fonctionne de la façon suivante
- Texte de base : "Hide"
- Appuie sur bouton = la USF est réduite au strict minimum pour faire apparait que ce bouton et déplacé en Haut à Gauche de l'écran + texte du bouton passe à "Show"
- Nouveau appui = rétablie la conf précédente.
Merci à vous en tout cas pour les essais précédent même si ça n'a pas porté ces fruits
Et si jamais voici un autre sujet sympa : https://forum.excel-pratique.com/excel/listbox-pour-selectionner-les-feuilles-a-enregistrer-separemm...
--
Charly
Bonjour le fil
CDU3390, tu n'es pas admin de ton post si je comprends... peut-être çà
Sinon tu peux masquer l'usf le temps de travailler avec un autre
Me.Hide@+
Bon après plusieurs essais avec d'autres ordi du bouot, il doit s'agir d'un blocage sur les configurations PC car eux n'y arrivent pas non plus.
J'ai la solution que j'ai décrit plus bas afin de cacher l'userform et en afficher un plus petit.
Merci pour l'aide
Bonjour CDU - BrunoM45 et Pijaku .
Vous êtes sur du ?
#If VBA7 ThenSur un de mes vieux fichiers qui s'utilisait en 32 et 64 bit j'écrivais
#If Win64 Then
Du coup avec le lien proposé précédemment et la sub toto j'aurai :
Option Explicit
#If Win64 Then
Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_STYLE As Long = (-16) 'The offset of a window's style
Private hWnd, IStyle
#Else
Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_STYLE As Long = (-16) 'The offset of a window's style
Private hWnd, IStyle
#End If
Public Sub toto(F As Object)
hWnd = FindWindow(vbNullString, F.Caption)
IStyle = GetWindowLong(hWnd, GWL_STYLE) Or &H70000
SetWindowLong hWnd, GWL_STYLE, IStyle
End SubSalut Xmenpl
Oui effectivement, tu as peut-être bien raison... j'utilisais le même code que toi avant
https://docs.microsoft.com/fr-fr/office/vba/language/concepts/getting-started/compiler-constants
@+