Griseries

Le
Jean-Paul
Bonsoir,

Je souhaite, à l'aide d'une macro, "griser" un item de menu - comment
dois-je m'y prendre.

Merci
Jean-Paul
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
Anacoluthe
Le #1769288
Bonjour !

'Jean-Paul' nous a écrit ...
Je souhaite, à l'aide d'une macro, "griser" un item de menu - comment
dois-je m'y prendre.


Il faut d'abord connaître l'ID du contrôle qu'on veut griser.

Ainsi le sous-menu Fichier / Imprimer possède l'ID 4
Tandis que '? / Activer le produit' a l'ID 5933 dans mon WD2003
La liste des ID s'obtient en énumérant les contrôles d'une barre d'outils
sachant que la barre des menus n'est qu'une barre d'outils parmi d'autres.

Pour griser la commande Fichier / Imprimer il suffit alors d'une ligne :

CommandBars.FindControl(ID:=4).Enabled = False

Anacoluthe
« Si la matière grise était plus rose,
le monde aurait moins les idées noires. »
- Pierre DAC

Jean-Paul
Le #1769266
Bonsoir Anacolthe,

Merci pour ta réponse, mais comment dois-je faire pour énumérer les
contrôles ?

Merci
Jean-Paul

Bonjour !

'Jean-Paul' nous a écrit ...
Je souhaite, à l'aide d'une macro, "griser" un item de menu - comment
dois-je m'y prendre.


Il faut d'abord connaître l'ID du contrôle qu'on veut griser.

Ainsi le sous-menu Fichier / Imprimer possède l'ID 4
Tandis que '? / Activer le produit' a l'ID 5933 dans mon WD2003
La liste des ID s'obtient en énumérant les contrôles d'une barre d'outils
sachant que la barre des menus n'est qu'une barre d'outils parmi d'autres.

Pour griser la commande Fichier / Imprimer il suffit alors d'une ligne :

CommandBars.FindControl(ID:=4).Enabled = False

Anacoluthe
« Si la matière grise était plus rose,
le monde aurait moins les idées noires. »
- Pierre DAC




Anacoluthe
Le #1758478
Bonjour !

'Jean-Paul' nous a écrit ...
Merci pour ta réponse, mais comment dois-je faire pour énumérer les
contrôles ?


Une boucle à l'endroit, une boucle à l'envers ! Voici par exemple une
macrobrouillon qui énumère à la va-vite toutes les ID des menus :

Public Sub ListeIDMenusSousMenus()
Dim M As CommandBarControl
Dim S As CommandBarControl
For Each M In Application.CommandBars("Menu bar").Controls
ActiveDocument.Content.InsertAfter vbCr & "------" & M.Caption & vbTab & M.ID
For Each S In M.CommandBar.Controls
ActiveDocument.Content.InsertAfter vbCr & " " & S.Caption & vbTab & S.ID
Next S
Next M
End Sub

Une fois qu'on a l'ID du contrôle recherché, facile de contrôler le contrôle.

Anacoluthe
« Si la matière grise était plus rose,
le monde aurait moins les idées noires. »
- Pierre DAC

Publicité
Poster une réponse
Anonyme