Bonjours,
J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un
classeurs excel, sans passer par une macro, est ce possible si oui comment???
(base de regisrtre???)
Merci de vos réponses
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
JièL
Bonjoir(c) lapinou
Le 27/01/2007 22:57 vous avez écrit ceci :
Bonjours, J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un classeurs excel, sans passer par une macro, est ce possible si oui comment??? (base de regisrtre???)
Si c'était possible de le faire dans la base de registre, ça concernerait TOUS les classeurs et pas juste un, et en plus ça serait uniquement sur CE poste...
Pourquoi ne voulez vous pas de macro si ce n'est pas indiscret ?
Merci de vos réponses
-- JièL / Jean-Louis GOUBERT Là bas mieux qu'en face ;-) http://forums.offices.free.fr/ La FAQ Outlook est là : http://faq.outlook.free.fr/ Les stats de CDO : http://faq.outlook.free.fr/cdo/
Bonjoir(c) lapinou
Le 27/01/2007 22:57 vous avez écrit ceci :
Bonjours,
J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un
classeurs excel, sans passer par une macro, est ce possible si oui comment???
(base de regisrtre???)
Si c'était possible de le faire dans la base de registre, ça concernerait
TOUS les classeurs et pas juste un, et en plus ça serait uniquement sur CE
poste...
Pourquoi ne voulez vous pas de macro si ce n'est pas indiscret ?
Merci de vos réponses
--
JièL / Jean-Louis GOUBERT
Là bas mieux qu'en face ;-) http://forums.offices.free.fr/
La FAQ Outlook est là : http://faq.outlook.free.fr/
Les stats de CDO : http://faq.outlook.free.fr/cdo/
Bonjours, J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un classeurs excel, sans passer par une macro, est ce possible si oui comment??? (base de regisrtre???)
Si c'était possible de le faire dans la base de registre, ça concernerait TOUS les classeurs et pas juste un, et en plus ça serait uniquement sur CE poste...
Pourquoi ne voulez vous pas de macro si ce n'est pas indiscret ?
Merci de vos réponses
-- JièL / Jean-Louis GOUBERT Là bas mieux qu'en face ;-) http://forums.offices.free.fr/ La FAQ Outlook est là : http://faq.outlook.free.fr/ Les stats de CDO : http://faq.outlook.free.fr/cdo/
MichDenis
2 façons de faire :: A et B
A- ====================================== 'Dans un module standard, tu copies dans le haut de celui-ci 'la déclaration des API. Ces procédures cachent ou affichent 'la barre de titre avec les 3 boutons de commande à l'extrême 'droite. Si en plus, tu protège ton Classeur (pas la feuille)-Option 'feuille, l'usager ne pourra pas fermer l'application, redimensionner 'la fenêtre de l'application ou de la feuille de calcul.
'Déclaration des API Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const GWL_STYLE = (-16) Public Const WS_CAPTION = &HC00000
'-------------------------------------------------- Sub CachéLaBarreDeTitreExcel() Dim hWnd As Long, Style As Long Nom = ActiveWindow.Application.Parent.Caption hWnd = FindWindow(vbNullString, Nom) Style = GetWindowLong(hWnd, GWL_STYLE) And Not WS_CAPTION SetWindowLong hWnd, GWL_STYLE, Style End Sub '-------------------------------------------------- Sub AfficherLaBarreDeTitreExcel() Dim hWnd As Long, Style As Long Nom = ActiveWindow.Application.Parent.Caption hWnd = FindWindow(vbNullString, Nom) Style = GetWindowLong(hWnd, GWL_STYLE) Or WS_CAPTION SetWindowLong hWnd, GWL_STYLE, Style End Sub ====================================== B - ====================================== Ce qui suit : '1 - Enlève les boutons et inhibe le bouton de fermeture de l'application '2 - Fait disparaître le menus de l'icône excel de la barre de titre '3 - La barre de titre demeure toujours présente. '4 - Pour tout masquer, exécuter la procédure : ' Sub ProcedureGeneral_EnleverLesBoutons_Et_Commandes() '5 - Pour remettre tout en place, Exécuter la procédure : ' Sub ProcedureGeneral_RemettreLesBoutons_Et_Commandes() '6 - Et pour empêcher le redimensionnement de la feuille de calcul, ' il y a toujours la commande : Menu / outils / Protéger le classeur / fenêtre.
'Déclaration des API dans le haut d'un module standard. Private Declare Function FindWindowA Lib "user32" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long
Private Declare Function GetClassLong Lib "user32" _ Alias "GetClassLongA" _ (ByVal hWnd As Long, _ ByVal nIndex As Long) As Long
Private Declare Function SetClassLong Lib "user32" _ Alias "SetClassLongA" _ (ByVal hWnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long
Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _ ByVal bRevert As Integer) As Integer
Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Integer, _ ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
Private Declare Function SetWindowLong Lib "user32" Alias _ "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias _ "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) _ As Long
Sub Disable_Control() Dim X As Integer For X = 1 To 9 Call DeleteMenu(GetSystemMenu(Application.hWnd, False), 0, 1024) Next X End Sub
Sub RestoreSystemMenu() hMenu% = GetSystemMenu(Application.hWnd, 1) End Sub
Sub HideMinimizeAndMaximizeButtons() Dim L As Long L = GetWindowLong(Application.hWnd, GWL_STYLE) L = L And Not (WS_MINIMIZEBOX) L = L And Not (WS_MAXIMIZEBOX) L = SetWindowLong(Application.hWnd, GWL_STYLE, L) End Sub
Sub RestoreMinimizeAndMaximizeButtons() Dim L As Long L = GetWindowLong(Application.hWnd, GWL_STYLE) L = SetWindowLong(Application.hWnd, GWL_STYLE, WS_MINIMIZEBOX _ Or WS_MAXIMIZEBOX Or L) End Sub
Sub RestaureLaCroix() Dim LeHandleExcel As Long Const GCL_STYLE = (-26) Const CS_NOCLOSE = &H200 LeHandleExcel = FindWindowA("XLMAIN", Application.Caption) SetClassLong LeHandleExcel, GCL_STYLE, _ GetClassLong(LeHandleExcel, GCL_STYLE) _ Xor CS_NOCLOSE End Sub
Sub EnleveLaCroix() Dim LeHandleExcel As Long Const GCL_STYLE = (-26) Const CS_NOCLOSE = &H200 LeHandleExcel = FindWindowA("XLMAIN", Application.Caption) SetClassLong LeHandleExcel, GCL_STYLE, _ GetClassLong(LeHandleExcel, GCL_STYLE) _ Xor CS_NOCLOSE End Sub
Sub ProcedureGeneral_EnleverLesBoutons_Et_Commandes()
Call Disable_Control Call HideMinimizeAndMaximizeButtons Call EnleveLaCroix End Sub
Sub ProcedureGeneral_RemettreLesBoutons_Et_Commandes() Call RestoreSystemMenu Call RestoreMinimizeAndMaximizeButtons Call RestaureLaCroix End Sub
"lapinou" a écrit dans le message de news:
Bonjours, J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un classeurs excel, sans passer par une macro, est ce possible si oui comment??? (base de regisrtre???) Merci de vos réponses
2 façons de faire :: A et B
A-
====================================== 'Dans un module standard, tu copies dans le haut de celui-ci
'la déclaration des API. Ces procédures cachent ou affichent
'la barre de titre avec les 3 boutons de commande à l'extrême
'droite. Si en plus, tu protège ton Classeur (pas la feuille)-Option
'feuille, l'usager ne pourra pas fermer l'application, redimensionner
'la fenêtre de l'application ou de la feuille de calcul.
'Déclaration des API
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Const GWL_STYLE = (-16)
Public Const WS_CAPTION = &HC00000
'--------------------------------------------------
Sub CachéLaBarreDeTitreExcel()
Dim hWnd As Long, Style As Long
Nom = ActiveWindow.Application.Parent.Caption
hWnd = FindWindow(vbNullString, Nom)
Style = GetWindowLong(hWnd, GWL_STYLE) And Not WS_CAPTION
SetWindowLong hWnd, GWL_STYLE, Style
End Sub
'--------------------------------------------------
Sub AfficherLaBarreDeTitreExcel()
Dim hWnd As Long, Style As Long
Nom = ActiveWindow.Application.Parent.Caption
hWnd = FindWindow(vbNullString, Nom)
Style = GetWindowLong(hWnd, GWL_STYLE) Or WS_CAPTION
SetWindowLong hWnd, GWL_STYLE, Style
End Sub
======================================
B -
====================================== Ce qui suit :
'1 - Enlève les boutons et inhibe le bouton de fermeture de l'application
'2 - Fait disparaître le menus de l'icône excel de la barre de titre
'3 - La barre de titre demeure toujours présente.
'4 - Pour tout masquer, exécuter la procédure :
' Sub ProcedureGeneral_EnleverLesBoutons_Et_Commandes()
'5 - Pour remettre tout en place, Exécuter la procédure :
' Sub ProcedureGeneral_RemettreLesBoutons_Et_Commandes()
'6 - Et pour empêcher le redimensionnement de la feuille de calcul,
' il y a toujours la commande : Menu / outils / Protéger le classeur / fenêtre.
'Déclaration des API dans le haut d'un module standard.
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetClassLong Lib "user32" _
Alias "GetClassLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetClassLong Lib "user32" _
Alias "SetClassLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Integer) As Integer
Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Integer, _
ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) _
As Long
Sub Disable_Control()
Dim X As Integer
For X = 1 To 9
Call DeleteMenu(GetSystemMenu(Application.hWnd, False), 0, 1024)
Next X
End Sub
Sub RestoreSystemMenu()
hMenu% = GetSystemMenu(Application.hWnd, 1)
End Sub
Sub HideMinimizeAndMaximizeButtons()
Dim L As Long
L = GetWindowLong(Application.hWnd, GWL_STYLE)
L = L And Not (WS_MINIMIZEBOX)
L = L And Not (WS_MAXIMIZEBOX)
L = SetWindowLong(Application.hWnd, GWL_STYLE, L)
End Sub
Sub RestoreMinimizeAndMaximizeButtons()
Dim L As Long
L = GetWindowLong(Application.hWnd, GWL_STYLE)
L = SetWindowLong(Application.hWnd, GWL_STYLE, WS_MINIMIZEBOX _
Or WS_MAXIMIZEBOX Or L)
End Sub
Sub RestaureLaCroix()
Dim LeHandleExcel As Long
Const GCL_STYLE = (-26)
Const CS_NOCLOSE = &H200
LeHandleExcel = FindWindowA("XLMAIN", Application.Caption)
SetClassLong LeHandleExcel, GCL_STYLE, _
GetClassLong(LeHandleExcel, GCL_STYLE) _
Xor CS_NOCLOSE
End Sub
Sub EnleveLaCroix()
Dim LeHandleExcel As Long
Const GCL_STYLE = (-26)
Const CS_NOCLOSE = &H200
LeHandleExcel = FindWindowA("XLMAIN", Application.Caption)
SetClassLong LeHandleExcel, GCL_STYLE, _
GetClassLong(LeHandleExcel, GCL_STYLE) _
Xor CS_NOCLOSE
End Sub
Sub ProcedureGeneral_EnleverLesBoutons_Et_Commandes()
Call Disable_Control
Call HideMinimizeAndMaximizeButtons
Call EnleveLaCroix
End Sub
Sub ProcedureGeneral_RemettreLesBoutons_Et_Commandes()
Call RestoreSystemMenu
Call RestoreMinimizeAndMaximizeButtons
Call RestaureLaCroix
End Sub
"lapinou" <lapinou@discussions.microsoft.com> a écrit dans le message de news:
4F1F5D8E-3080-4EDC-B5D2-AA47ECA2348C@microsoft.com...
Bonjours,
J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un
classeurs excel, sans passer par une macro, est ce possible si oui comment???
(base de regisrtre???)
Merci de vos réponses
A- ====================================== 'Dans un module standard, tu copies dans le haut de celui-ci 'la déclaration des API. Ces procédures cachent ou affichent 'la barre de titre avec les 3 boutons de commande à l'extrême 'droite. Si en plus, tu protège ton Classeur (pas la feuille)-Option 'feuille, l'usager ne pourra pas fermer l'application, redimensionner 'la fenêtre de l'application ou de la feuille de calcul.
'Déclaration des API Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const GWL_STYLE = (-16) Public Const WS_CAPTION = &HC00000
'-------------------------------------------------- Sub CachéLaBarreDeTitreExcel() Dim hWnd As Long, Style As Long Nom = ActiveWindow.Application.Parent.Caption hWnd = FindWindow(vbNullString, Nom) Style = GetWindowLong(hWnd, GWL_STYLE) And Not WS_CAPTION SetWindowLong hWnd, GWL_STYLE, Style End Sub '-------------------------------------------------- Sub AfficherLaBarreDeTitreExcel() Dim hWnd As Long, Style As Long Nom = ActiveWindow.Application.Parent.Caption hWnd = FindWindow(vbNullString, Nom) Style = GetWindowLong(hWnd, GWL_STYLE) Or WS_CAPTION SetWindowLong hWnd, GWL_STYLE, Style End Sub ====================================== B - ====================================== Ce qui suit : '1 - Enlève les boutons et inhibe le bouton de fermeture de l'application '2 - Fait disparaître le menus de l'icône excel de la barre de titre '3 - La barre de titre demeure toujours présente. '4 - Pour tout masquer, exécuter la procédure : ' Sub ProcedureGeneral_EnleverLesBoutons_Et_Commandes() '5 - Pour remettre tout en place, Exécuter la procédure : ' Sub ProcedureGeneral_RemettreLesBoutons_Et_Commandes() '6 - Et pour empêcher le redimensionnement de la feuille de calcul, ' il y a toujours la commande : Menu / outils / Protéger le classeur / fenêtre.
'Déclaration des API dans le haut d'un module standard. Private Declare Function FindWindowA Lib "user32" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long
Private Declare Function GetClassLong Lib "user32" _ Alias "GetClassLongA" _ (ByVal hWnd As Long, _ ByVal nIndex As Long) As Long
Private Declare Function SetClassLong Lib "user32" _ Alias "SetClassLongA" _ (ByVal hWnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long
Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _ ByVal bRevert As Integer) As Integer
Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Integer, _ ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
Private Declare Function SetWindowLong Lib "user32" Alias _ "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias _ "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) _ As Long
Sub Disable_Control() Dim X As Integer For X = 1 To 9 Call DeleteMenu(GetSystemMenu(Application.hWnd, False), 0, 1024) Next X End Sub
Sub RestoreSystemMenu() hMenu% = GetSystemMenu(Application.hWnd, 1) End Sub
Sub HideMinimizeAndMaximizeButtons() Dim L As Long L = GetWindowLong(Application.hWnd, GWL_STYLE) L = L And Not (WS_MINIMIZEBOX) L = L And Not (WS_MAXIMIZEBOX) L = SetWindowLong(Application.hWnd, GWL_STYLE, L) End Sub
Sub RestoreMinimizeAndMaximizeButtons() Dim L As Long L = GetWindowLong(Application.hWnd, GWL_STYLE) L = SetWindowLong(Application.hWnd, GWL_STYLE, WS_MINIMIZEBOX _ Or WS_MAXIMIZEBOX Or L) End Sub
Sub RestaureLaCroix() Dim LeHandleExcel As Long Const GCL_STYLE = (-26) Const CS_NOCLOSE = &H200 LeHandleExcel = FindWindowA("XLMAIN", Application.Caption) SetClassLong LeHandleExcel, GCL_STYLE, _ GetClassLong(LeHandleExcel, GCL_STYLE) _ Xor CS_NOCLOSE End Sub
Sub EnleveLaCroix() Dim LeHandleExcel As Long Const GCL_STYLE = (-26) Const CS_NOCLOSE = &H200 LeHandleExcel = FindWindowA("XLMAIN", Application.Caption) SetClassLong LeHandleExcel, GCL_STYLE, _ GetClassLong(LeHandleExcel, GCL_STYLE) _ Xor CS_NOCLOSE End Sub
Sub ProcedureGeneral_EnleverLesBoutons_Et_Commandes()
Call Disable_Control Call HideMinimizeAndMaximizeButtons Call EnleveLaCroix End Sub
Sub ProcedureGeneral_RemettreLesBoutons_Et_Commandes() Call RestoreSystemMenu Call RestoreMinimizeAndMaximizeButtons Call RestaureLaCroix End Sub
"lapinou" a écrit dans le message de news:
Bonjours, J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un classeurs excel, sans passer par une macro, est ce possible si oui comment??? (base de regisrtre???) Merci de vos réponses
Ange Ounis
OutilsProtectionProtéger le classeur, cocher Fenêtres dans les éléments à protéger puis OK.
---------- Ange Ounis ----------
Bonjours, J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un classeurs excel, sans passer par une macro, est ce possible si oui comment??? (base de regisrtre???) Merci de vos réponses
OutilsProtectionProtéger le classeur, cocher Fenêtres dans les éléments à
protéger puis OK.
----------
Ange Ounis
----------
Bonjours,
J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un
classeurs excel, sans passer par une macro, est ce possible si oui comment???
(base de regisrtre???)
Merci de vos réponses
OutilsProtectionProtéger le classeur, cocher Fenêtres dans les éléments à protéger puis OK.
---------- Ange Ounis ----------
Bonjours, J'aimerais désactiver les 3 boutons (fermer, agrandir, réduire) dans un classeurs excel, sans passer par une macro, est ce possible si oui comment??? (base de regisrtre???) Merci de vos réponses