menu personnalisé - griser éléments

Le
René
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé quand ils
ne sont pas concerné, p.ex. une macro protège certaines cellules et
feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JPMonnier
Le #18959731
Bonjour,
Pour rendre un menu grisé (suivant une action quelconque, il faut lui mettre
la valeur Enabled
Extrait d'un ex :

Set Mycontrol = Mybar.Controls("Gestion des engagements") 'nom du menu
With Mycontrol
.Controls("Fermer sans sauvegarder").Enabled = False
.Controls("Ouvrir engagements sauvegardés").Enabled = True
.Controls("sauvegarder engagements actuels").Enabled = True
.Controls("Sauvegarder").Enabled = False
End With
With Mybar
.Controls("Choix").Enabled = False
.Controls("Quitter").Enabled = True
.Controls("Menu").Enabled = True
End With
End Sub

--
Cordialement

"René" news:
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé quand
ils ne sont pas concerné, p.ex. une macro protège certaines cellules et
feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René



René
Le #18963731
Bonjour JPMonnier,

Merci de votre aide, mais ça ne marche pas, je n'ai pas dû comprendre.

Mon menu s'appelle "Budget" et un des éléments du menu est "Protéger
Feuilles". Quand j'ouvre le classeur le menu se met en place et protège les
feuilles. Je voudrais que cet élément, donc "Protéger Feuille" soit
désactivé et grisé. J'ai mis les lignes du code suivantes à la fin de la
macro qui met en place le menu
Dim Mycontrol, Mybar
Set Mycontrol = Mybar.Controls("Budget") 'nom du menu
With Mycontrol
.Controls("Proteger Feuilles").Enabled = False
End With
Or, la macro se plante au niveau de "Set Mycontrol = ..."
Qu'est-ce que j'ai mal fait ?

Merci d'avance de votre aide.
Cordialement,
René

"JPMonnier"
Bonjour,
Pour rendre un menu grisé (suivant une action quelconque, il faut lui
mettre la valeur Enabled
Extrait d'un ex :

Set Mycontrol = Mybar.Controls("Gestion des engagements") 'nom du menu
With Mycontrol
.Controls("Fermer sans sauvegarder").Enabled = False
.Controls("Ouvrir engagements sauvegardés").Enabled = True
.Controls("sauvegarder engagements actuels").Enabled = True
.Controls("Sauvegarder").Enabled = False
End With
With Mybar
.Controls("Choix").Enabled = False
.Controls("Quitter").Enabled = True
.Controls("Menu").Enabled = True
End With
End Sub

--
Cordialement

"René" news:
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé quand
ils ne sont pas concerné, p.ex. une macro protège certaines cellules et
feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René






JPMonnier
Le #18963821
Je constate que Protéger Feuille est sans s
alors que .Controls("Proteger Feuilles") a un s
Peut être que c'est la source d'erreur
--
également suivant les cas, si le nom de ton menu perso est Budget, il faut
utiliser la syntaxe suivante
Set Mybar = CommandBars("Budget")
Set Mycontrol = Mybar.Controls("Proteger Feuilles")
With Mycontrol
.Enabled = false ' ou True
End With

Cordialement

"René" news:
Bonjour JPMonnier,

Merci de votre aide, mais ça ne marche pas, je n'ai pas dû comprendre.

Mon menu s'appelle "Budget" et un des éléments du menu est "Protéger
Feuilles". Quand j'ouvre le classeur le menu se met en place et protège
les feuilles. Je voudrais que cet élément, donc "Protéger Feuille" soit
désactivé et grisé. J'ai mis les lignes du code suivantes à la fin de la
macro qui met en place le menu
Dim Mycontrol, Mybar
Set Mycontrol = Mybar.Controls("Budget") 'nom du menu
With Mycontrol
.Controls("Proteger Feuilles").Enabled = False
End With
Or, la macro se plante au niveau de "Set Mycontrol = ..."
Qu'est-ce que j'ai mal fait ?

Merci d'avance de votre aide.
Cordialement,
René

"JPMonnier"
Bonjour,
Pour rendre un menu grisé (suivant une action quelconque, il faut lui
mettre la valeur Enabled
Extrait d'un ex :

Set Mycontrol = Mybar.Controls("Gestion des engagements") 'nom du menu
With Mycontrol
.Controls("Fermer sans sauvegarder").Enabled = False
.Controls("Ouvrir engagements sauvegardés").Enabled = True
.Controls("sauvegarder engagements actuels").Enabled = True
.Controls("Sauvegarder").Enabled = False
End With
With Mybar
.Controls("Choix").Enabled = False
.Controls("Quitter").Enabled = True
.Controls("Menu").Enabled = True
End With
End Sub

--
Cordialement

"René" news:
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé quand
ils ne sont pas concerné, p.ex. une macro protège certaines cellules et
feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René










René
Le #18977341
Rebonjour,

J'ai bien essayé le code proposé, pour le tester j'ai changé le nom du menu
en "Bu" et l'élément concerné en "Prot". La macro se plante toujpurs au
niveau de
Set Mybar = CommandBars("Bu")
avec le message :
Erreur d'exécution '5' - Argument ou appel de procédure incorrect.
Que faire ?
En plus avec tous les essais que j'ai fait, le menu "Fichier" a disparu de
la barre de menus Excel.

Cordialement
René


"JPMonnier"
Je constate que Protéger Feuille est sans s
alors que .Controls("Proteger Feuilles") a un s
Peut être que c'est la source d'erreur
--
également suivant les cas, si le nom de ton menu perso est Budget, il faut
utiliser la syntaxe suivante
Set Mybar = CommandBars("Budget")
Set Mycontrol = Mybar.Controls("Proteger Feuilles")
With Mycontrol
.Enabled = false ' ou True
End With

Cordialement

"René" news:
Bonjour JPMonnier,

Merci de votre aide, mais ça ne marche pas, je n'ai pas dû comprendre.

Mon menu s'appelle "Budget" et un des éléments du menu est "Protéger
Feuilles". Quand j'ouvre le classeur le menu se met en place et protège
les feuilles. Je voudrais que cet élément, donc "Protéger Feuille" soit
désactivé et grisé. J'ai mis les lignes du code suivantes à la fin de la
macro qui met en place le menu
Dim Mycontrol, Mybar
Set Mycontrol = Mybar.Controls("Budget") 'nom du menu
With Mycontrol
.Controls("Proteger Feuilles").Enabled = False
End With
Or, la macro se plante au niveau de "Set Mycontrol = ..."
Qu'est-ce que j'ai mal fait ?

Merci d'avance de votre aide.
Cordialement,
René

"JPMonnier"
Bonjour,
Pour rendre un menu grisé (suivant une action quelconque, il faut lui
mettre la valeur Enabled
Extrait d'un ex :

Set Mycontrol = Mybar.Controls("Gestion des engagements") 'nom du menu
With Mycontrol
.Controls("Fermer sans sauvegarder").Enabled = False
.Controls("Ouvrir engagements sauvegardés").Enabled = True
.Controls("sauvegarder engagements actuels").Enabled = True
.Controls("Sauvegarder").Enabled = False
End With
With Mybar
.Controls("Choix").Enabled = False
.Controls("Quitter").Enabled = True
.Controls("Menu").Enabled = True
End With
End Sub

--
Cordialement

"René" news:
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé
quand ils ne sont pas concerné, p.ex. une macro protège certaines
cellules et feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René













JPMonnier
Le #18980301
Bonsoir
La disparition du menu Excel est normal, il faut rétablir avant de quitter
Sinon, si tu peux m'envoyer ton fichier ce serait plus facile !
--
Cordialement

"René" news:
Rebonjour,

J'ai bien essayé le code proposé, pour le tester j'ai changé le nom du
menu en "Bu" et l'élément concerné en "Prot". La macro se plante toujpurs
au niveau de
Set Mybar = CommandBars("Bu")
avec le message :
Erreur d'exécution '5' - Argument ou appel de procédure incorrect.
Que faire ?
En plus avec tous les essais que j'ai fait, le menu "Fichier" a disparu de
la barre de menus Excel.

Cordialement
René


"JPMonnier"
Je constate que Protéger Feuille est sans s
alors que .Controls("Proteger Feuilles") a un s
Peut être que c'est la source d'erreur
--
également suivant les cas, si le nom de ton menu perso est Budget, il
faut utiliser la syntaxe suivante
Set Mybar = CommandBars("Budget")
Set Mycontrol = Mybar.Controls("Proteger Feuilles")
With Mycontrol
.Enabled = false ' ou True
End With

Cordialement

"René" news:
Bonjour JPMonnier,

Merci de votre aide, mais ça ne marche pas, je n'ai pas dû comprendre.

Mon menu s'appelle "Budget" et un des éléments du menu est "Protéger
Feuilles". Quand j'ouvre le classeur le menu se met en place et protège
les feuilles. Je voudrais que cet élément, donc "Protéger Feuille" soit
désactivé et grisé. J'ai mis les lignes du code suivantes à la fin de
la macro qui met en place le menu
Dim Mycontrol, Mybar
Set Mycontrol = Mybar.Controls("Budget") 'nom du menu
With Mycontrol
.Controls("Proteger Feuilles").Enabled = False
End With
Or, la macro se plante au niveau de "Set Mycontrol = ..."
Qu'est-ce que j'ai mal fait ?

Merci d'avance de votre aide.
Cordialement,
René

"JPMonnier"
Bonjour,
Pour rendre un menu grisé (suivant une action quelconque, il faut lui
mettre la valeur Enabled
Extrait d'un ex :

Set Mycontrol = Mybar.Controls("Gestion des engagements") 'nom du menu
With Mycontrol
.Controls("Fermer sans sauvegarder").Enabled = False
.Controls("Ouvrir engagements sauvegardés").Enabled = True
.Controls("sauvegarder engagements actuels").Enabled = True
.Controls("Sauvegarder").Enabled = False
End With
With Mybar
.Controls("Choix").Enabled = False
.Controls("Quitter").Enabled = True
.Controls("Menu").Enabled = True
End With
End Sub

--
Cordialement

"René" news:
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé
quand ils ne sont pas concerné, p.ex. une macro protège certaines
cellules et feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René

















JPMonnier
Le #18980911
Pour réafficher le menu Excel :
Sub SupprimerMenuPerso()
MenuBars(xlWorksheet).Reset
MenuBars(xlModule).Activate
MenuBars("perso").Delete 'perso =nom du menu perso
End Sub
Attention, une fois le menu perso supprimé, on ne peut le réafficher
qu'après avoir quitter Excel

"René" news:
Rebonjour,

J'ai bien essayé le code proposé, pour le tester j'ai changé le nom du
menu en "Bu" et l'élément concerné en "Prot". La macro se plante toujpurs
au niveau de
Set Mybar = CommandBars("Bu")
avec le message :
Erreur d'exécution '5' - Argument ou appel de procédure incorrect.
Que faire ?
En plus avec tous les essais que j'ai fait, le menu "Fichier" a disparu de
la barre de menus Excel.

Cordialement
René


"JPMonnier"
Je constate que Protéger Feuille est sans s
alors que .Controls("Proteger Feuilles") a un s
Peut être que c'est la source d'erreur
--
également suivant les cas, si le nom de ton menu perso est Budget, il
faut utiliser la syntaxe suivante
Set Mybar = CommandBars("Budget")
Set Mycontrol = Mybar.Controls("Proteger Feuilles")
With Mycontrol
.Enabled = false ' ou True
End With

Cordialement

"René" news:
Bonjour JPMonnier,

Merci de votre aide, mais ça ne marche pas, je n'ai pas dû comprendre.

Mon menu s'appelle "Budget" et un des éléments du menu est "Protéger
Feuilles". Quand j'ouvre le classeur le menu se met en place et protège
les feuilles. Je voudrais que cet élément, donc "Protéger Feuille" soit
désactivé et grisé. J'ai mis les lignes du code suivantes à la fin de
la macro qui met en place le menu
Dim Mycontrol, Mybar
Set Mycontrol = Mybar.Controls("Budget") 'nom du menu
With Mycontrol
.Controls("Proteger Feuilles").Enabled = False
End With
Or, la macro se plante au niveau de "Set Mycontrol = ..."
Qu'est-ce que j'ai mal fait ?

Merci d'avance de votre aide.
Cordialement,
René

"JPMonnier"
Bonjour,
Pour rendre un menu grisé (suivant une action quelconque, il faut lui
mettre la valeur Enabled
Extrait d'un ex :

Set Mycontrol = Mybar.Controls("Gestion des engagements") 'nom du menu
With Mycontrol
.Controls("Fermer sans sauvegarder").Enabled = False
.Controls("Ouvrir engagements sauvegardés").Enabled = True
.Controls("sauvegarder engagements actuels").Enabled = True
.Controls("Sauvegarder").Enabled = False
End With
With Mybar
.Controls("Choix").Enabled = False
.Controls("Quitter").Enabled = True
.Controls("Menu").Enabled = True
End With
End Sub

--
Cordialement

"René" news:
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé
quand ils ne sont pas concerné, p.ex. une macro protège certaines
cellules et feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René

















JPMonnier
Le #18983181
Bonjour,
J'ai fait un petit ex. sur lequel tu pourrais t'inspirer
http://cjoint.com/?dCjA25IhQp

--
Cordialement


"René" news:
Rebonjour,

J'ai bien essayé le code proposé, pour le tester j'ai changé le nom du
menu en "Bu" et l'élément concerné en "Prot". La macro se plante toujpurs
au niveau de
Set Mybar = CommandBars("Bu")
avec le message :
Erreur d'exécution '5' - Argument ou appel de procédure incorrect.
Que faire ?
En plus avec tous les essais que j'ai fait, le menu "Fichier" a disparu de
la barre de menus Excel.

Cordialement
René


"JPMonnier"
Je constate que Protéger Feuille est sans s
alors que .Controls("Proteger Feuilles") a un s
Peut être que c'est la source d'erreur
--
également suivant les cas, si le nom de ton menu perso est Budget, il
faut utiliser la syntaxe suivante
Set Mybar = CommandBars("Budget")
Set Mycontrol = Mybar.Controls("Proteger Feuilles")
With Mycontrol
.Enabled = false ' ou True
End With

Cordialement

"René" news:
Bonjour JPMonnier,

Merci de votre aide, mais ça ne marche pas, je n'ai pas dû comprendre.

Mon menu s'appelle "Budget" et un des éléments du menu est "Protéger
Feuilles". Quand j'ouvre le classeur le menu se met en place et protège
les feuilles. Je voudrais que cet élément, donc "Protéger Feuille" soit
désactivé et grisé. J'ai mis les lignes du code suivantes à la fin de
la macro qui met en place le menu
Dim Mycontrol, Mybar
Set Mycontrol = Mybar.Controls("Budget") 'nom du menu
With Mycontrol
.Controls("Proteger Feuilles").Enabled = False
End With
Or, la macro se plante au niveau de "Set Mycontrol = ..."
Qu'est-ce que j'ai mal fait ?

Merci d'avance de votre aide.
Cordialement,
René

"JPMonnier"
Bonjour,
Pour rendre un menu grisé (suivant une action quelconque, il faut lui
mettre la valeur Enabled
Extrait d'un ex :

Set Mycontrol = Mybar.Controls("Gestion des engagements") 'nom du menu
With Mycontrol
.Controls("Fermer sans sauvegarder").Enabled = False
.Controls("Ouvrir engagements sauvegardés").Enabled = True
.Controls("sauvegarder engagements actuels").Enabled = True
.Controls("Sauvegarder").Enabled = False
End With
With Mybar
.Controls("Choix").Enabled = False
.Controls("Quitter").Enabled = True
.Controls("Menu").Enabled = True
End With
End Sub

--
Cordialement

"René" news:
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé
quand ils ne sont pas concerné, p.ex. une macro protège certaines
cellules et feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René

















René
Le #18992311
Bonjour JPMonnier,

Merci pour ton aide, mais j'ai déjà réparé le menu grâce au tuyau de
MichDenis avec la macro:
sub test()
Application.commandBars(1).Reset
End sub
Cordialement,
René

"JPMonnier" uVD4w$
Pour réafficher le menu Excel :
Sub SupprimerMenuPerso()
MenuBars(xlWorksheet).Reset
MenuBars(xlModule).Activate
MenuBars("perso").Delete 'perso =nom du menu perso
End Sub
Attention, une fois le menu perso supprimé, on ne peut le réafficher
qu'après avoir quitter Excel

"René" news:
Rebonjour,

J'ai bien essayé le code proposé, pour le tester j'ai changé le nom du
menu en "Bu" et l'élément concerné en "Prot". La macro se plante toujpurs
au niveau de
Set Mybar = CommandBars("Bu")
avec le message :
Erreur d'exécution '5' - Argument ou appel de procédure incorrect.
Que faire ?
En plus avec tous les essais que j'ai fait, le menu "Fichier" a disparu
de la barre de menus Excel.

Cordialement
René


"JPMonnier"
Je constate que Protéger Feuille est sans s
alors que .Controls("Proteger Feuilles") a un s
Peut être que c'est la source d'erreur
--
également suivant les cas, si le nom de ton menu perso est Budget, il
faut utiliser la syntaxe suivante
Set Mybar = CommandBars("Budget")
Set Mycontrol = Mybar.Controls("Proteger Feuilles")
With Mycontrol
.Enabled = false ' ou True
End With

Cordialement

"René" news:
Bonjour JPMonnier,

Merci de votre aide, mais ça ne marche pas, je n'ai pas dû comprendre.

Mon menu s'appelle "Budget" et un des éléments du menu est "Protéger
Feuilles". Quand j'ouvre le classeur le menu se met en place et protège
les feuilles. Je voudrais que cet élément, donc "Protéger Feuille" soit
désactivé et grisé. J'ai mis les lignes du code suivantes à la fin de
la macro qui met en place le menu
Dim Mycontrol, Mybar
Set Mycontrol = Mybar.Controls("Budget") 'nom du menu
With Mycontrol
.Controls("Proteger Feuilles").Enabled = False
End With
Or, la macro se plante au niveau de "Set Mycontrol = ..."
Qu'est-ce que j'ai mal fait ?

Merci d'avance de votre aide.
Cordialement,
René

"JPMonnier" news:
Bonjour,
Pour rendre un menu grisé (suivant une action quelconque, il faut lui
mettre la valeur Enabled
Extrait d'un ex :

Set Mycontrol = Mybar.Controls("Gestion des engagements") 'nom du menu
With Mycontrol
.Controls("Fermer sans sauvegarder").Enabled = False
.Controls("Ouvrir engagements sauvegardés").Enabled = True
.Controls("sauvegarder engagements actuels").Enabled = True
.Controls("Sauvegarder").Enabled = False
End With
With Mybar
.Controls("Choix").Enabled = False
.Controls("Quitter").Enabled = True
.Controls("Menu").Enabled = True
End With
End Sub

--
Cordialement

"René" news:
Bonjour,

Dans un classeur qui contient plusieurs macros, j'ai ajouté un menu
personnalisé à 3 niveaux.
Je voudrais que certains éléments de ce menu apparaissent en grisé
quand ils ne sont pas concerné, p.ex. une macro protège certaines
cellules et feuilles, une autre s'appelle "Ôter la protection".

1) Quel est le code pour désactiver et mettre en gris soit l'élément
"Protéger" ou "Ôter la protection" ?

2) Dans quel module faudra-t-il mettre ce code ?

Merci de votre aide

Cordialement,

René




















Publicité
Poster une réponse
Anonyme