Bonjour
Est il possible de gérer une barre d'outils personnalisée, comme le font Access, Word,... en grisant certaines commandes.
Si oui comment
Merci de vos réponses
JC
Version imprimable
Bonjour
Est il possible de gérer une barre d'outils personnalisée, comme le font Access, Word,... en grisant certaines commandes.
Si oui comment
Merci de vos réponses
JC
Les barres d'outils (tout comme les menus et les menus contextuels) sont des objets CommandBar qui appartiennent à la collection... CommandBars ! :wink:
La collection CommandBars est une propriété de l'objet Application (ton instance d'access).
Chaque objet CommandBar (barre d'outils, etc) possède une collection CommandBarControls qui regroupe tous les contrôles (boutons, zone de liste, etc) de la barre d'outils en question (ou du menu s'il s'agit d'un menu...).
Ces contrôles apartiennent tous à une même catégorie : ce sont des objets CommandBarControl. Mais, à l'instar des contrôles de formulaires, chaque contrôle d'un objet CommandBar possède un type défini : par exemple pour un bouton : CommandBarButton, pour une zone de liste : CommandBarComboBox, etc.
Il y a donc 2 façons de pointer sur un contrôle d'une CommandBar à l'aide d'une variable.
1) en déclarant la variable précisément du même type. Par exemple pour un bouton :
2) En utilisant simplement la catégorie générique :Code:Dim c as CommandBarButton
:arrow: La première solution est recommandée car plus précise.Code:Dim c as CommandBarControl
Tu peux ainsi pointer sur un bouton de barre d'outils à l'aide d'une variable objet de type CommandBarButton et jouer avec les propriétés et méthodes disponibles... (F1 et explorateur d'objet pour plus d'infos :wink: )
Exemple pour désactiver 2 boutons d'un barre d'outils :
Note : La collection CommandBars est fournie par la bibliothèque office.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim b As CommandBar Dim c As CommandBarButton Set b = Application.CommandBars("NomBarreOutilsOuMenu") Set c = b.Controls("NomBouton1") c.Enabled = False Set c = b.Controls("NomBouton2") c.Enabled = False Set c = Nothing Set b = Nothing
Vérifie donc tes références, tu dois avoir Microsoft Office x.x Object Library d'activée.
Un grand merci
JC