[VBA] Enlever la croix rouge d'un UserForm.

Dernière mise à jour le 29 août 2008 à 12:26 par lermite222
Publié par lermite222
Il est parfois intéressant de supprimer la possibilité de sortir d'un userform tant que toutes les entrées n'ont pas été saisies, mais voilà, il reste toujours cette croix qui autorise l'utilisateur à sortir.
Le code ci-dessous permet d'oter cette croix.

Dans la partie déclaration de l'UF


'pour enlever la croix rouge d'un UF
 Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

 Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

 Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Dans l'initialisation de l'UF


Private Sub UserForm_Initialize()
Dim hwnd As Long
    hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D") _
    & "Frame", Me.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
End Sub


Collection CommentÇaMarche.net