Activer/désactiver une commande de menu

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 003 fois - Téléchargée 58 fois

Contenu du snippet

On peut souhaiter désactiver la commande d'un menu pour forcer l'utilisateur à utiliser une autre commande dans le cadre d'un document personnalisé.
Pour cela il suffit de connaitre l'identifiant de la commande à désactiver.
Pour connaitre l'identifiant utilisez le script 1 et adaptez le à votre besoin.
Un fois l'identifiant connu, utilisez le script 2 à placer dans la procédure Document_Open() du module ThisDocument.

Source / Exemple :


' Script 1 
Sub Script1() 
Dim mcd As CommandBar 
Dim mmm 
Dim nnn 
Set mcd = Application.CommandBars.ActiveMenuBar 
For Each mmm In mcd.Controls 
    ' Si menu Outils 
    If mmm.ID = 30007 Then 
        ' affiche toutes les commandes 
        For Each nnn In mmm.Controls 
            Debug.Print nnn.ID & ":" & nnn.Caption & "/" & nnn.Type 
        Next 
    End If 
Next 
Set mcd = Nothing 
End Sub 

'Script 2 
'Désactive la commande Macro du menu Outils 
Dim CtlMacro As CommandBarControl 
    Set CtlMacro = CommandBars.FindControl(Type:=msoControlPopup, ID:=30017) 
    If Not CtlMacro Is Nothing Then CtlMacro.Enabled = Not CtlMacro.Enabled 
    Set CtlMacro = Nothing

A voir également

Ajouter un commentaire

Commentaires

MERLIN004
Messages postés
5
Date d'inscription
mercredi 12 août 2009
Statut
Membre
Dernière intervention
3 septembre 2009
-
Je n'ai pas saisi le script 1 et copier le script 2 :

Comment fais t'on pour annuler cette procédure car je n'arrive plus à ouvrir le bouton macro ?

Comment fais t'on pour remettre le bouton en fonction une fois que l'on quitte l'application ?

Merci
cs_biboubar
Messages postés
1
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
27 septembre 2007
-
Bonjour Donnazac
J'ai galéré plusieurs jours pour réactiver la commande macro du menu option.
J'ai vainement cherché un script VBA caché queleque part.
En fait, la solution était beaucoup plus simple.
Menu: OUTIL / PERSONNALISER
(la fenêtre personnalisation s'ouvre, ne pas en tenir compte)
Faire un clic droit sur OUTIL (barre menu), et cliquer sur "REINITIALISER".
C'est tout.
donnazac
Messages postés
2
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
17 septembre 2006
-
Bonjour

Tres interessant ces script mais j'aurai aimer aussi voir comment on reactive les macros
Merci
Cordialement

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.