begin process at 2012 02 16 16:56:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBA

 > ACTIVER/DÉSACTIVER UNE COMMANDE DE MENU

ACTIVER/DÉSACTIVER UNE COMMANDE DE MENU


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VBA Classé sous :commande, menu Niveau :Débutant Date de création :09/05/2001 Vu :6 734

Auteur : webalg

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
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
 



 Sources du même auteur

AUTOMATISER L'IMPORTATION DE MODULE
Source avec Zip BOITE DE DIALOGUE OUVRIR/ENREGISTRER

 Sources de la même categorie

Source avec Zip Source avec une capture OUTLOOK ATTACHEMENT SAVER par MoiLafouine
Source avec Zip GESTION PERSONNEL par oudlarbi
Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
Source avec Zip Source avec une capture MANIPULER LES FENETRES ENFANT D'EXCEL par bigfish_le vrai
Source avec Zip Source avec une capture COLLECTION ID par Le Pivert

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture Source .NET (Dotnet) AJOUTER OU SUPPRIMER MENU CONTEXTUEL D'APPLICATION PAR CLIC ... par Le Pivert
Source avec Zip BON DE COMMANDE par alpha5
Source avec Zip Source avec une capture GESTION GÉNÉRALE DES SOCIÉTÉ par promarc
SCRIPT VBS D'ENVOI DE MAIL EN LIGNE DE COMMANDE par djebbipgm

Commentaires et avis

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

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.


Commentaire de MERLIN004 le 03/09/2009 14:53:18

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

 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 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 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 VBA Excel : Menus contextuels , comment modifier la commande Copier [ par rbn ] Bonjour ; Je suis sousExcel VBA et je cherche comment modifier la commande standard "coller tout" par une commande "coller formule", ceci pour l'ense 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales