Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ACTIVER/DÉSACTIVER UNE COMMANDE DE MENU


Information sur la source

Catégorie :VBA Classé sous : commande, menu Niveau : Débutant Date de création : 09/05/2001 Vu : 5 372

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

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

  • ' 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
' 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
 

Commentaires et avis

signaler à un administrateur
Commentaire de donnazac le 17/09/2006 12:43:28

Bonjour

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

signaler à un administrateur
Commentaire de biboubar le 27/09/2007 22:46:17

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.


Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Touche de raccourci sans menu [ par Alexandre Gauthier ] comment mettre des touche de raccourci sans faire un menu... comme ctrl-c (commande) del (commande) etcthx Récupérer et exécuter une commande du Menu Contextuel. [ par Chrysostome ] Un programme gratuit développé en Delphi crée une commande dans le Menu Contextuel. J'aimerais que cette ligne de commande (?) soit exécutable depuis création d'un objet [ par liban123 ] Bonjour a tous,je débute en programation sous Visual Basic et je suis déja impliquer dans de grosses application concrêtes.je suis bien Coche d'une commande de menu à partir d'une autre fenêtre [ par moos13003 ] Moos Salut,Comment mettre une coche à une commande de menu (form1) à partir d'une autre fenêtre de type form2?M supprimer la barre de menu d'access [ par thguillon ] Bonjour,Quelle est la ligne de commande pour supprimer la barre de menu de Access (Fichier, Edition, Affichage, Insertion...) à partir de VB.Je pensai Exécuter une commande issue d'un menu déroulant [ par cissou06 ] Bonjour,Je pilote Visio en VBA. Il faudrait que j'arrive à exécuter, via le code, une action qui se trouve dans un menu déroulant (dans la barre de me fermeture sous/menu dans la barre de menu [ par Jim26 ] Bonjour,j'ai intégré dans la barre de menu, une sous commande pour macro, avec la fonction AutoOpen,à la fermeture du fichier, cette sous-commande res Comment créer un menu dans VB6 en loadant l'executable, les valeur prise d'une BD Access [ par AngeliusMefyrx ] Dans visual basic, lorsque l'on crée des menu, on passe par l'option en haut dans le programme et on les fait un par un.Ce que j'aimerais faire, c'est ShellIntegration SubMenu InvokeCommand [ par Satirik ] j'ajoute un clic droit de l'explorer un sous menu , j'arrive a mettre une commande si je met juste un item grace a IContextMenu::InvokeCommand mais de Insertion d'icônes dans un menu de commande [ par Surfurax ] Salut,Je souhaiterai savoir si il existe un composant ou une API permettant d'ajouter une icône dans les menus de commande (menu de la fenêtre). Merci


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.