L'informatique à votre portée
L'informatique prêt-à-porter

Faites appel à moi pour vos formations
sur les dpts 81, 31, 82, 11 et 67 (Strasbourg)
Confiez moi vos développements Office

FacebookTwitterGoogle BookmarksLinkedin

Ajouter/supprimer un contrôle

4 mars 2014
Imprimer E-mail

Pour ajouter un contrôle, il faut d'abord faire référence à l'ensemble des contrôles de la barre (même si elle est vide), puis ajouter :

Application.CommandBars("Standard").Controls.Add [Type], [Id], [Parameter], [Before], [Temporary]

Les paramètres entre crochets ne sont pas obligatoires, si elles ne sont pas indiquées, la valeur par defaut est appliquée

  • Type indique le type de contrôle : msoControlButton (bouton), msoControlEdit (zone de texte), msoControlDropdown (zone de liste déroulante), msoControlComboBox (zone de liste modifiable) ou msoControlPopup (sous-menu). Par défaut : msoControlButton
  • Id est un nombre entier représentant un contrôle prédéfini. Chaque bouton des barres d'outils prédifinis a un ID propre. Par défaut, c'est un bouton vide.
  • Parameter, vous pouvez stocker dans ce paramètre les donnés que vous voulez (pour pouvoir les relire ensuite).
  • Before, position du nouveau contrôle, il se placera alors devant le contrôle dont la position est le numéro indiqué. Par défaut : à la fin de le barre de commande
  • Temporary doit être à True pour que le contrôle soit temporaire, dans ce cas il disparaît à la fermeture d'Excel. Par défaut : False.

Exemple créant une barre d'outils et y ajoute les boutons couper,copier, coller :

Sub NouvBarre()
     Dim MaBarre As CommandBar
     Dim NouvBtn As CommandBarButton

     Set MaBarre = CommandBars.Add("BarrePerso") 'ajoute une barre d'outils
     Set NouvBtn = MaBarre.Controls.Add(msoControlButton, CommandBars("Standard").Controls("Couper").ID)    'ajoute le bouton couper à la barre
     Set NouvBtn = MaBarre.Controls.Add(msoControlButton, Application.CommandBars("Standard").Controls("Copier").ID) 'ajoute le bouton couper à la barre
     Set NouvBtn = MaBarre.Controls.Add(msoControlButton, Application.CommandBars("Standard").Controls("Coller").ID)  'ajoute le bouton coller à la barre
     MaBarre.Visible = True 'affiche la barre
End Sub

Pour supprimer un contrôle :

CommandBars("BarrePerso").Controls(3).Delete