Les Allergies
Alimentaires
Posez votre question Signaler

[VBA-E] Masquer Element Userform

a.dequidt 42Messages postés 4 septembre 2007Date d'inscription - Dernière réponse le 25 nov. 2007 à 11:17
Bonjour,
Je cherche a supprimer la croix en haut a droite de la fenetre d'un userform...
Merci
Lire la suite 

[VBA-E] Masquer Element Userform »

2 réponses
Réponse
+4
moins plus
Si, c'est possible avec les APIs de Windows.

ATTENTION NE PAS OUBLIER D'AVOIR UN BOUTON POUR FERMER.........!

---------------------------- module 1 pour Auto_open -----------------------------------
'Pour éviter que les utilisateurs ne ferment un userform
'A placer au début du module

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

Sub auto_open()
UserForm1.Show (modal)
End Sub
----------------------------------------------------

----------------- Module API_Sup_Croix -----------------------------
'Suppression Croix X userform a l'initialisation
'-----------------------------------------------
Sub SupprimerFermeture(Name_Userform As String)
Dim hWnd As Long
hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Name_Userform)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
End Sub
-------------------------------------------------------------

'Dans chaque code de userform mettre :
Private Sub UserForm_Initialize()
Call SupprimerFermeture(Me.Caption)
'... autres instructions d'initialisation
End Sub

Private Sub CommandButton1_Click()
End
End Sub
Ajouter un commentaire
Réponse
-1
moins plus
Bonjour a.dequidt,

A ma connaissance ce n'est pas possible.
Par contre tu peux inhiber la croix de fermeture du formulaire en complétant l'événement 'QueryClose' comme suit :


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = True
End Sub


Tu peux même y ajouter un message d'avertissement :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
MsgBox "Pour fermer ce formulaire, utilisez le bouton Fermer !",vbOKOnly+vbInformation
Cancel = True
End If
End Sub


Cordialement.
Ajouter un commentaire
Ce document intitulé « [VBA-E] Masquer Element 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.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?