VBA - Enlever la croix rouge d'un UserForm.

Décembre 2016

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



A voir également :

Ce document intitulé «  VBA - Enlever la croix rouge d'un UserForm.  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.