Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

masquer Protection dans Menu Outils

Staple1600

XLDnaute Barbatruc
Bonjour

Je remets ici la reponse que j'avais donné
(je ne me souviens plus de l'auteur du post)

Info trouvé ici:
Comment personnaliser des menus et une barre de menus dans Excel

Code:
Sub Id_Control()
Dim myId As Object
   Set myId = CommandBars("Worksheet Menu Bar").Controls("Outils")
   MsgBox myId.Caption & Chr(13) & myId.ID
End Sub

Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("Outils").Enabled = False
End Sub
Sub Menu_Enable()
   CommandBars("Worksheet menu bar").Controls("Outils").Enabled = True
End Sub

Sub MenuItem_Disable()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Outils")
   myCmd.Controls("Protection").Enabled = False
End Sub

Sub MenuItem_Enable()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Outils")
   myCmd.Controls("Protection").Enabled = True
End Sub
 
Dernière édition:

mmaatthh

XLDnaute Nouveau
Re : masquer Protection dans Menu Outils

Merci Staple1600

Oui, mais il t a un IK! j'ai modifier un peu pour donner ceci. Le tout fonctionne très bien quand les macros sont dans un module.

'Celle-ci desactive le menu Outils
Sub Menu_Disable()
CommandBars("Worksheet menu bar").Controls("Outils").Controls("Protection").Enabled = False
End Sub

'Celle-la le réactive
Sub Menu_Enable()
CommandBars("Worksheet menu bar").Controls("Outils").Controls("Protection").Enabled = True
End Sub

Cependant lorsque je mets les instructions dans le Thiswork open ou before_close j'ai un message d'erreur!


Private Sub Workbook_Open()
CommandBars("Worksheet menu bar").Controls("Outils").Controls("Protection").Enabled = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
CommandBars("Worksheet menu bar").Controls("Outils").Controls("Protection").Enabled = True
End Sub

Ps:Oui c'est moi qui est lancé cette discution

MMaatthh
 

Staple1600

XLDnaute Barbatruc
Re : masquer Protection dans Menu Outils

Bonsoir

Code:
Sub MenuItem_Disable()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Outils")
   myCmd.Controls("Protection").Enabled = False
End Sub
Sub MenuItem_Enable()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Outils")
   myCmd.Controls("Protection").Enabled = True
End Sub


Private Sub Workbook_Open()
MenuItem_Disable
End Sub

De cette facon ca fonctionne (en tout cas sur mon poste)
 

mmaatthh

XLDnaute Nouveau
Re : masquer Protection dans Menu Outils

Encore un gros merci Staple1600

Le tout est à ma convenance.

Petite question générale. Pourquoi si j'inscrie le code dans workbook open cela ne fonctionne pas et lorque l'on donne le nom de la macro à exécuter qui est dans un module cela fonctionne?

Private Sub Workbook_Open()
MenuItem_Disable
End Sub

Fonctionne bien mais

Private Sub Workbook_Open()
Dim myCmd As Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("Outils")
myCmd.Controls("Protection").Enabled = False
End Sub

Ne fonctionne pas.

Il y a une mécanique que je ne comprend pas!

Mmaatthh
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…