OVH Cloud OVH Cloud

enlever le bouton fermeture de fenêtre

3 réponses
Avatar
Daniel
Bonjour à tous :-) (belle journée pour rester devant l'écran)

J'ai un fichier avec plusieur fenêtre ouvert en même temps et je voudrait
interdir la fermeture par le X rouge dans le coin droit en haut,
mais pouvoir fermer avec le X rouge du fichier.(ou si non fichier/Quitter)

3 réponses

Avatar
Hervé
Salut Daniel,
Grise la croix de l'application :

Private Declare Function GetSystemMenu _
Lib "user32" ( _
ByVal Hwnd As Long, _
ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu _
Lib "user32" ( _
ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

Private Sub GriserCroix()
DeleteMenu GetSystemMenu( _
Application.Hwnd, False), 61536, 0
End Sub

Hervé.

"Daniel" a écrit dans le message news:
P9blb.35207$
Bonjour à tous :-) (belle journée pour rester devant l'écran)

J'ai un fichier avec plusieur fenêtre ouvert en même temps et je voudrait
interdir la fermeture par le X rouge dans le coin droit en haut,
mais pouvoir fermer avec le X rouge du fichier.(ou si non
fichier/Quitter)





Avatar
Daniel
Bonjour
Cela fonction pour le fichier , mais je voudrait faire la même chose pour
chacun des fenêtre ( j'ai 4 fenêtres d'ouverte).

Merci

"Hervé" a écrit dans le message de
news:
Salut Daniel,
Grise la croix de l'application :

Private Declare Function GetSystemMenu _
Lib "user32" ( _
ByVal Hwnd As Long, _
ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu _
Lib "user32" ( _
ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

Private Sub GriserCroix()
DeleteMenu GetSystemMenu( _
Application.Hwnd, False), 61536, 0
End Sub

Hervé.

"Daniel" a écrit dans le message news:
P9blb.35207$
Bonjour à tous :-) (belle journée pour rester devant l'écran)

J'ai un fichier avec plusieur fenêtre ouvert en même temps et je
voudrait


interdir la fermeture par le X rouge dans le coin droit en haut,
mais pouvoir fermer avec le X rouge du fichier.(ou si non
fichier/Quitter)









Avatar
Hervé
Salut Daniel,
Cela ne marche pas sur les fenêtres filles de l'application (classeurs) mais
je peux me tromper. Tu as la possibilité de gérer la fermeture des classeurs
en fonction de ce que tu veux à l'aide d'un événement de niveau application
par l'intermédiaire d'un module de classe dans le classeur "Perso.xls" :

A mettre dans un module de classe que tu nomme "ClsFermer" :



Public WithEvents Fermer As Application

Private Sub Fermer_WorkbookBeforeClose( _
ByVal Wb As Workbook, _
Cancel As Boolean)

If Not Wb.Saved Then
MsgBox "Pas enregistré ! :o( "
Cancel = True
Else
MsgBox "Enregistré ! :o) "
Cancel = False
End If
End Sub

A mettre dans le module du ThisWorkbook :



Dim Cl_fermer As New ClsFermer

Private Sub Workbook_Open()
Set Cl_fermer.Fermer = Application
End Sub

Hervé.

"Daniel" a écrit dans le message news:
#
Bonjour
Cela fonction pour le fichier , mais je voudrait faire la même chose pour
chacun des fenêtre ( j'ai 4 fenêtres d'ouverte).

Merci

"Hervé" a écrit dans le message de
news:
Salut Daniel,
Grise la croix de l'application :

Private Declare Function GetSystemMenu _
Lib "user32" ( _
ByVal Hwnd As Long, _
ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu _
Lib "user32" ( _
ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

Private Sub GriserCroix()
DeleteMenu GetSystemMenu( _
Application.Hwnd, False), 61536, 0
End Sub

Hervé.

"Daniel" a écrit dans le message news:
P9blb.35207$
Bonjour à tous :-) (belle journée pour rester devant l'écran)

J'ai un fichier avec plusieur fenêtre ouvert en même temps et je
voudrait


interdir la fermeture par le X rouge dans le coin droit en haut,
mais pouvoir fermer avec le X rouge du fichier.(ou si non
fichier/Quitter)