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

Griseries

3 réponses
Avatar
Jean-Paul
Bonsoir,

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

Merci
Jean-Paul

3 réponses

Avatar
Anacoluthe
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

Avatar
Jean-Paul
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




Avatar
Anacoluthe
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