Bonjour, je sais que la question à déjà été posée mais je ne retrouve pas.
J'aimerai interdire la fermeture d'un classeur via la croix et obliger
l'utilisateur de le faire par un bouton macro que j'ai placé sur la feuille.
Merci de votre aide.
--
Le partage du savoir contribue à l'amélioration de la condition humaine!
Merci à tous
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
RGI
Bonjour
Avec ce code dans un module standard
'Déclaration des API dans le haut du module standard. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, _ ByVal nPosition As Long, ByVal wFlags As Long) As Long Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _ ByVal fEnable As Long) As Long Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _ As Long Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _ ByVal bRevert As Long) As Long Private Const SC_CLOSE As Long = &HF060
Sub Desactive_Bouton_Fermerture_Excel() Dim myhWnd As Long, hMenu As Long 'Supprime la petite croix myhWnd = FindWindow("XLMAIN", Application.Caption) hMenu = GetSystemMenu(myhWnd, 0) DeleteMenu hMenu, SC_CLOSE, 0& DrawMenuBar myhWnd 'désactive la commande "quitter" du menu Fichier Application.CommandBars("Worksheet Menu Bar") _ .Controls("&Fichier").Controls("&Quitter").Enabled = False
End Sub
Sub active_Bouton_Fermerture_Excel() Dim myhWnd As Long, hMenu As Long 'Remet la petite croix myhWnd = FindWindow("XLMAIN", Application.Caption) hMenu = GetSystemMenu(myhWnd, 1) DrawMenuBar myhWnd 'active la commande "quitter" du menu Fichier Application.CommandBars("Worksheet Menu Bar") _ .Controls("&Fichier").Controls("&Quitter").Enabled = True End Sub
Salutations
RGI
Bonjour, je sais que la question à déjà été posée mais je ne retrouve pas. J'aimerai interdire la fermeture d'un classeur via la croix et obliger l'utilisateur de le faire par un bouton macro que j'ai placé sur la feuille. Merci de votre aide.
Bonjour
Avec ce code dans un module standard
'Déclaration des API dans le haut du module standard.
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, _
ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060
Sub Desactive_Bouton_Fermerture_Excel()
Dim myhWnd As Long, hMenu As Long
'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd
'désactive la commande "quitter" du menu Fichier
Application.CommandBars("Worksheet Menu Bar") _
.Controls("&Fichier").Controls("&Quitter").Enabled = False
End Sub
Sub active_Bouton_Fermerture_Excel()
Dim myhWnd As Long, hMenu As Long
'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd
'active la commande "quitter" du menu Fichier
Application.CommandBars("Worksheet Menu Bar") _
.Controls("&Fichier").Controls("&Quitter").Enabled = True
End Sub
Salutations
RGI
Bonjour, je sais que la question à déjà été posée mais je ne retrouve pas.
J'aimerai interdire la fermeture d'un classeur via la croix et obliger
l'utilisateur de le faire par un bouton macro que j'ai placé sur la feuille.
Merci de votre aide.
'Déclaration des API dans le haut du module standard. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, _ ByVal nPosition As Long, ByVal wFlags As Long) As Long Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _ ByVal fEnable As Long) As Long Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _ As Long Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _ ByVal bRevert As Long) As Long Private Const SC_CLOSE As Long = &HF060
Sub Desactive_Bouton_Fermerture_Excel() Dim myhWnd As Long, hMenu As Long 'Supprime la petite croix myhWnd = FindWindow("XLMAIN", Application.Caption) hMenu = GetSystemMenu(myhWnd, 0) DeleteMenu hMenu, SC_CLOSE, 0& DrawMenuBar myhWnd 'désactive la commande "quitter" du menu Fichier Application.CommandBars("Worksheet Menu Bar") _ .Controls("&Fichier").Controls("&Quitter").Enabled = False
End Sub
Sub active_Bouton_Fermerture_Excel() Dim myhWnd As Long, hMenu As Long 'Remet la petite croix myhWnd = FindWindow("XLMAIN", Application.Caption) hMenu = GetSystemMenu(myhWnd, 1) DrawMenuBar myhWnd 'active la commande "quitter" du menu Fichier Application.CommandBars("Worksheet Menu Bar") _ .Controls("&Fichier").Controls("&Quitter").Enabled = True End Sub
Salutations
RGI
Bonjour, je sais que la question à déjà été posée mais je ne retrouve pas. J'aimerai interdire la fermeture d'un classeur via la croix et obliger l'utilisateur de le faire par un bouton macro que j'ai placé sur la feuille. Merci de votre aide.
Céline Dion
"STEN83" a écrit dans le message de news:
Bonjour, je sais que la question à déjà été posée mais je ne retrouve pas. J'aimerai interdire la fermeture d'un classeur via la croix et obliger l'utilisateur de le faire par un bouton macro que j'ai placé sur la feuille. Merci de votre aide. -- Le partage du savoir contribue à l'amélioration de la condition humaine! Merci à tous
Bonjour,
Dans le module de Thisworkbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean) Cancel = varClos End Sub
Private Sub Workbook_Open() varClos = True End Sub
Dans un module ordinaire :
Public varClos
Sub maMacroDeFermeture() 'macro à affecter à un bouton varClos = False 'ici mettre l'enregistrement ou pas ActiveWorkbook.Close End Sub
Cordialités Céline D.
"STEN83" <STEN83@discussions.microsoft.com> a écrit dans le message de news:
56453A67-BED1-40D0-84EF-6277B5207E34@microsoft.com...
Bonjour, je sais que la question à déjà été posée mais je ne retrouve pas.
J'aimerai interdire la fermeture d'un classeur via la croix et obliger
l'utilisateur de le faire par un bouton macro que j'ai placé sur la
feuille.
Merci de votre aide.
--
Le partage du savoir contribue à l'amélioration de la condition humaine!
Merci à tous
Bonjour,
Dans le module de Thisworkbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = varClos
End Sub
Private Sub Workbook_Open()
varClos = True
End Sub
Dans un module ordinaire :
Public varClos
Sub maMacroDeFermeture() 'macro à affecter à un bouton
varClos = False
'ici mettre l'enregistrement ou pas
ActiveWorkbook.Close
End Sub
Bonjour, je sais que la question à déjà été posée mais je ne retrouve pas. J'aimerai interdire la fermeture d'un classeur via la croix et obliger l'utilisateur de le faire par un bouton macro que j'ai placé sur la feuille. Merci de votre aide. -- Le partage du savoir contribue à l'amélioration de la condition humaine! Merci à tous
Bonjour,
Dans le module de Thisworkbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean) Cancel = varClos End Sub
Private Sub Workbook_Open() varClos = True End Sub
Dans un module ordinaire :
Public varClos
Sub maMacroDeFermeture() 'macro à affecter à un bouton varClos = False 'ici mettre l'enregistrement ou pas ActiveWorkbook.Close End Sub