|
LES BARRES D'OUTILS ET DE MENUS
La collection CommandBars représente l'ensemble des barres de
menus et d'outils, chacune étant un objet CommandBar.
Pour travailler avec une barre, vous pouvez utiliser les syntaxes suivantes
:
- CommandBars(n) où n représente
l'index de la barre . Difficile de savoir quel est l'index d'une barre
précise.
- CommandBars("nom de la barre") où "nom
de la barre" représente son nom en anglais. Par exemple
pour la barre d'outils Mise en forme, son nom est Formatting.
L'exemple suivant vous permet d'inscrire dans un classeur le nom des
barres d'outils dans votre langue (NameLocal)
et en anglais (Name), ainsi que son Index.
Sub ListeBarre()
Dim cbar As CommandBar
For Each cbar In Application.CommandBars
ActiveCell = cbar.Index
ActiveCell.Offset(0, 1)
= cbar.NameLocal
ActiveCell.Offset(0, 2)
= cbar.Name
ActiveCell.Offset(1, 0).Select
Next
End Sub
Pour ajouter une barre, il suffit d'utiliser la
méthode Add ainsi :
Application.CommandBars.Add "nom de votre
barre", [position], [MenuBar], [Temporary]
Les paramètres entre crochets ne sont pas obligatoires, si elles ne
sont pas indiquées, la valeur par defaut est appliquée
- position correspond à la position de
la barre dans Excel : msoBarLeft (à
gauche), msoBarTop (en haut), msoBarRight
(à droite), msoBarBottom ( en bas) , msoBarFloating
(flottante), msoBarPopup (menu
contextuel). Par défaut : msoBarFloating.
- MenuBar doit être à True
si vous voulez remplacer la barre d'outils active. Par défaut :
False
- Temporary doit être à True
pour que la barre soit temporaire, dans ce cas elle disparaît à la
fermeture d'Excel. Par défaut : False
Pour supprimer une barre :
Application.CommandBars("nom de votre
barre").Delete
Pour ne pas supprimer une barre d'outils prédéfinis, il vous faut
vérifier si la barre d'outils est une barre d'outils personnalisée ou
prédéfinie, la propriété BuiltIn est False
dans le cas d'une barre d'outils personnalisées. L'exemple suivant,
supprime toutes les barres personnalisées que vous avez créées dans
Excel :
Sub SupprBarrePerso()
Dim cbar As CommandBar
For Each cbar In Application.CommandBars
If Not cbar.BuiltIn
Then cbar.Delete
Next
End Sub
Pour afficher, vous pouvez la rendre visible, pour la masquer, vous
pouvez soit la rendre invisible, soit la rendre inactive.
- Pour la rendre visible (par ex. avec la barre standard) :
Application.CommandBars("Standard").Visible
= True
- Pour la rendre invisible :
Application.CommandBars("Standard").Visible
= False
- pour la rendre inactive et donc inaccessible :
Application.CommandBars("Standard").Enabled
= False
- vous devrez alors la rendre active ainsi :
Application.CommandBars("Standard").Enabled
= True
Cette dernière méthode est préférable pour
masquer toutes les barres affichées puis faire réapparaître
uniquement seulement qui était affichées comme dans les
2 exemples suivants :
Sub MasqueBarre()
Dim cbar As CommandBar
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
End Sub
Sub AffichBarre()
Dim cbar As CommandBar
For Each cbar In Application.CommandBars
cbar.Enabled = True
Next
End Sub
|