Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Désactiver/activer un item dans un menu ajouté via VBA

3 réponses
Avatar
Pounet95
Salut à toutes et tous,
XL2000 sous Windows2000 et XL2007 sous Vista

Via une procédure VBA exécutée à l'ouverture du fichier, je créé un menu
"Toto" juste avant le "?"
Ce menu toto a 6 sous-menus dont je voudrais gérer l'accès en fonction de la
présence ou non de données dans le classeur.

Je me perd dans les méandres de Commandbard(1).Controls("Toto") pour que le
sous-menu puisse être désactivé ( Enabled = False je présume )
Je tente différentes solutions, mais je n'y arrive pas ;o(((((

PS : le but est de "griser" le 1er niveau comme si par exemple je voulais
empêcher l'accès au sous-menu "Nouveau" du menu "Fichier"

Merci d'avance à toutes et tous
Pounet95 ( ..... futur retraité M-10 ! )

3 réponses

Avatar
michdenis
Dans les versions précédentes à Excel 2007,

La ligne de commande suivante devrait faire l'affaire :

Désactive le menu
application.CommandBars(1).controls("toto").enabled = False
Pour l'activer tu passes la commande à True

Pour Excel 2007, tu peux te servir de la barre d'outils "Accès rapide"
pour afficher un bouton correspondant à une macro !



"Pounet95" a écrit dans le message de groupe de discussion :
#
Salut à toutes et tous,
XL2000 sous Windows2000 et XL2007 sous Vista

Via une procédure VBA exécutée à l'ouverture du fichier, je créé un menu
"Toto" juste avant le "?"
Ce menu toto a 6 sous-menus dont je voudrais gérer l'accès en fonction de la
présence ou non de données dans le classeur.

Je me perd dans les méandres de Commandbard(1).Controls("Toto") pour que le
sous-menu puisse être désactivé ( Enabled = False je présume )
Je tente différentes solutions, mais je n'y arrive pas ;o(((((

PS : le but est de "griser" le 1er niveau comme si par exemple je voulais
empêcher l'accès au sous-menu "Nouveau" du menu "Fichier"

Merci d'avance à toutes et tous
Pounet95 ( ..... futur retraité M-10 ! )
Avatar
Pounet95
Bonjour

Ca désactive effectivement le menu "toto" mais dans sa globalité.
Or, ce n'est pas lui que je veux désactiver, mais un de ses sous-menus !

J'ai ajouté à la barre de menu standard, juste avant le ?, mon menu perso
nommé "toto"
Ce menu "toto" contient 6 sous-menus. J'ai alors :
Fichier ......... Données ............... Toto ?
Vider classeur
Importer données
MAJ Références
Exporter vers TXT
MODOP
Lister Versions

Ce que je désire, c'est que la macro attachée au sous-menu "Vider classeur"
étant exécutée, les sous-menus "Vider classeur", "Importer données",
"Exporter vers TXT" soient grisées, donc non accessibles.

Et c'est la que je "merdoie" lamentablement ;o(((((
Si tu as une idée ......

Merci d'avance. Bonne journée
Pounet95




"michdenis" a écrit dans le message de
news:
Dans les versions précédentes à Excel 2007,

La ligne de commande suivante devrait faire l'affaire :

Désactive le menu
application.CommandBars(1).controls("toto").enabled = False
Pour l'activer tu passes la commande à True

Pour Excel 2007, tu peux te servir de la barre d'outils "Accès rapide"
pour afficher un bouton correspondant à une macro !



"Pounet95" a écrit dans le message de groupe de
discussion :
#
Salut à toutes et tous,
XL2000 sous Windows2000 et XL2007 sous Vista

Via une procédure VBA exécutée à l'ouverture du fichier, je créé un menu
"Toto" juste avant le "?"
Ce menu toto a 6 sous-menus dont je voudrais gérer l'accès en fonction de
la
présence ou non de données dans le classeur.

Je me perd dans les méandres de Commandbard(1).Controls("Toto") pour que
le
sous-menu puisse être désactivé ( Enabled = False je présume )
Je tente différentes solutions, mais je n'y arrive pas ;o(((((

PS : le but est de "griser" le 1er niveau comme si par exemple je voulais
empêcher l'accès au sous-menu "Nouveau" du menu "Fichier"

Merci d'avance à toutes et tous
Pounet95 ( ..... futur retraité M-10 ! )



Avatar
Pounet95
Re Bonjour,

Comme quoi après une bonne nuit !!!
En fait, la ligne de commande est à peine différente :

application.commandbars(1).controls("toto").controls("Vider
Classeur").Enabled= False

et effectivement le résultat escompté est là.

Merci encore
Pounet95


"michdenis" a écrit dans le message de
news:
Dans les versions précédentes à Excel 2007,

La ligne de commande suivante devrait faire l'affaire :

Désactive le menu
application.CommandBars(1).controls("toto").enabled = False
Pour l'activer tu passes la commande à True

Pour Excel 2007, tu peux te servir de la barre d'outils "Accès rapide"
pour afficher un bouton correspondant à une macro !



"Pounet95" a écrit dans le message de groupe de
discussion :
#
Salut à toutes et tous,
XL2000 sous Windows2000 et XL2007 sous Vista

Via une procédure VBA exécutée à l'ouverture du fichier, je créé un menu
"Toto" juste avant le "?"
Ce menu toto a 6 sous-menus dont je voudrais gérer l'accès en fonction de
la
présence ou non de données dans le classeur.

Je me perd dans les méandres de Commandbard(1).Controls("Toto") pour que
le
sous-menu puisse être désactivé ( Enabled = False je présume )
Je tente différentes solutions, mais je n'y arrive pas ;o(((((

PS : le but est de "griser" le 1er niveau comme si par exemple je voulais
empêcher l'accès au sous-menu "Nouveau" du menu "Fichier"

Merci d'avance à toutes et tous
Pounet95 ( ..... futur retraité M-10 ! )