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

Tester l'existence d'une barre d'outil

3 réponses
Avatar
Gilgamesh
Bonjour,

bon, ma demande d'aide pour l'affichage d'une palette de couleur n'ayant
pas inspiré grand monde, j'ai inséré un bouton associé à une macro qui
crée automatiquement un barre d'outil avec comme seul bouton la commande
"Remplissage" (le pot de peinture).

Sub PaletteCouleur()
Application.CommandBars.Add(Name:="PaletteCouleur").Visible = True
Application.CommandBars("Drawing").Controls(13).Copy Bar:=Application. _
CommandBars("PaletteCouleur")
End Sub

Pb : une fois que cette barre est crée, si j'active à nouveau le bouton
il me fait une erreur.

Comment tester si une barre d'outil existe déjà, genre :

If exist CommandBars...


merci

3 réponses

Avatar
Philippe.R
Bonjour,
Tu peux simplement gérer l'erreur en commençant ta macro par :

on error resume next
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.

"Gilgamesh" a écrit dans le message de
news:
Bonjour,

bon, ma demande d'aide pour l'affichage d'une palette de couleur n'ayant
pas inspiré grand monde, j'ai inséré un bouton associé à une macro qui
crée automatiquement un barre d'outil avec comme seul bouton la commande
"Remplissage" (le pot de peinture).

Sub PaletteCouleur()
Application.CommandBars.Add(Name:="PaletteCouleur").Visible = True
Application.CommandBars("Drawing").Controls(13).Copy Bar:=Application. _
CommandBars("PaletteCouleur")
End Sub

Pb : une fois que cette barre est crée, si j'active à nouveau le bouton
il me fait une erreur.

Comment tester si une barre d'outil existe déjà, genre :

If exist CommandBars...


merci


Avatar
ru-th
Salut

Salut

2 cas possibles :
-soit la barre n'existe pas et il faut la créer
-soit la barre existe et elle est visible ou non

Sub PaletteCouleur()
On Error Resume Next
With Application
Set a = .CommandBars("PaletteCouleur")
If Err <> 0 Then
.CommandBars.Add(Name:="PaletteCouleur").Visible = True
.CommandBars("Drawing").Controls(13).Copy Bar:=Application. _
CommandBars("PaletteCouleur")
Else
.CommandBars("PaletteCouleur").Visible = True
End If
End With
End Sub

a+
rural thierry
"Gilgamesh" a écrit dans le message de news:

Bonjour,

bon, ma demande d'aide pour l'affichage d'une palette de couleur n'ayant
pas inspiré grand monde, j'ai inséré un bouton associé à une macro qui
crée automatiquement un barre d'outil avec comme seul bouton la commande
"Remplissage" (le pot de peinture).

Sub PaletteCouleur()
Application.CommandBars.Add(Name:="PaletteCouleur").Visible = True
Application.CommandBars("Drawing").Controls(13).Copy Bar:=Application. _
CommandBars("PaletteCouleur")
End Sub

Pb : une fois que cette barre est crée, si j'active à nouveau le bouton
il me fait une erreur.

Comment tester si une barre d'outil existe déjà, genre :

If exist CommandBars...


merci


Avatar
Gilgamesh
Ok, merci à vous deux.

Je suis qd même étonné qu'il n'y ai pas de test d'existence et qu'on
soit obligé de passer par un code d'erreur...

a+