Rechercher : dans
Par :

[VBA-E] Masquer Element Userform

Dernière réponse le 25 nov 2007 à 11:17:12 a.dequidt, le 17 sep 2007 à 10:20:30 
 Signaler ce message aux modérateurs

Bonjour,


Je cherche a supprimer la croix en haut a droite de la fenetre d'un userform...

Merci Je suis chainte ...
          ... ET ALORS?

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « [VBA E] Masquer Element Userform » dans :
[VBA] Enlever la croix rouge d'un UserForm. VoirIl 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...
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...

1

Papou93, le 17 sep 2007 à 20:46:13

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.

Répondre à Papou93

2

 f894009, le 25 nov 2007 à 11:17:12
  • +1

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

Répondre à f894009