Tester l'existance d'une barre d'outils

Chico64

XLDnaute Junior
Bonjour à Tous,

J'ai créé une fonction qui dès l'ouverture du classeur crée une barre d'outils perso et dès la fermeture de ce meme classeur détruit cette meme barre d'outil.

Ma question:

Serait-il possible de tester avant la création de cette barre d'outil si cette derniere n'existe pas déja car si elle existe déja il y aura un problème.

Si oui pouvez-vous m'aider ?

Vous remercie davance.
Chico
 

Chico64

XLDnaute Junior
Re : Tester l'existance d'une barre d'outils

Egalement,

Est-il possible que cette barre d'outil perso ne s'affiche que pour un classeur en particulier pas tous car apparemment quand je crée un noueau fichier excel cette barre d'outil s'ajoute ?

Vous remerciant.
 

MJ13

XLDnaute Barbatruc
Re : Tester l'existance d'une barre d'outils

Bonjour Chico

Il faut faire attention avec ses barres d'outils perso.

Normalement, il me semble que si tu sort et que tu détruit ta BO perso, si c'est bien programmé, tu ne dois pas l'avoir au prochain démarrage (voir les proriétés de la commande d'ajout dans l'aide).
 

Chico64

XLDnaute Junior
Re : Tester l'existance d'une barre d'outils

Merci,

Mais pourtant elle se détruit bien à la fermeture du classeur.

Mais ce qui est étrange, c'est que je lance cette fonction dans un classeur nommé "Macro" et dès que je crée ou ouvre un autre classeur cette barre d'outils apparait alors que je désire qu'elle apparaisse que dans le classeur "Macro".

Je vous remercie.
 

Chico64

XLDnaute Junior
Re : Tester l'existance d'une barre d'outils

Merci,

Code:
Private Sub Workbook_Open()
CreationBarreOutilMTA_KPI
End Sub

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SuppressionBarreOutilMTA_PKI
End Sub

Code:
Sub CreationBarreOutilMTA_KPI()

Dim Cbar As CommandBar
Set Cbar = CommandBars.Add(Name:="Barre_Outil_Perso", Position:=msoBarTop, MenuBar:=False, Temporary:=True)
Cbar.Visible = True '<--Permet de rendre visible la barre d'outil créée

Application.ScreenUpdating = False '<-- désactivation du rafraîchissement de l'écran

'Création du bouton MTA et ses propriétés
With ActiveSheet.Pictures.Insert("C:\Macro\MTApictnew.bmp") '<-- insertion de l'image
    .Name = "MTA" '<-- attribution d'un nom à l'image
    .Copy '<-- copie de l'image dans le presse-papier
End With

With CommandBars("Barre_Outil_Perso").Controls.Add(msoControlButton) '<-- création du bouton
    .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
    .Caption = "MTA" '<-- texte du bouton
    .TooltipText = "Lance la macro MTA"  '<--Affiche une info lors du survol de la souris sur le bouton
    .OnAction = "LancerApplicationMTA" '<-- Permet d'assigner une macro ou fonction à ce bouton
    .PasteFace '<-- collage de l'image issue du presse-papier
End With

ActiveSheet.Pictures("MTA").Delete '<-- suppression de l'image insérée sur la feuille

'Création du bouton KPI et ses propriétés
With ActiveSheet.Pictures.Insert("C:\Macro\PKIpictnew.bmp") '<-- insertion de l'image
    .Name = "KPI" '<-- attribution d'un nom à l'image
    .Copy '<-- copie de l'image dans le presse-papier
End With

With CommandBars("Barre_Outil_Perso").Controls.Add(Type:=msoControlButton, Before:=2) '<-- création du bouton et ce dernier sera en seconde position

    .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
    .Caption = "KPI" '<-- texte du bouton
    .TooltipText = "Lance la macro KPI" '<--Affiche une info lors du survol de la souris sur le bouton
    .BeginGroup = True '<--Permet de placer un séparateur juste avant le bouton
    .OnAction = "LancerApplicationKPI" '<-- Permet d'assigner une macro ou fonction à ce bouton
    .PasteFace '<-- collage de l'image issue du presse-papier
End With

ActiveSheet.Pictures("KPI").Delete '<-- suppression de l'image insérée sur la feuille

Application.ScreenUpdating = True '<-- réactivation du rafraîchissement de l'écran

End Sub

Code:
Sub SuppressionBarreOutilMTA_PKI()
On Error Resume Next '<-- gestion d'erreur au cas où la barre n'existe pas
CommandBars("Barre_Outil_Perso").Delete
End Sub

Vous remerciant.
Chico
 

MJ13

XLDnaute Barbatruc
Re : Tester l'existance d'une barre d'outils

Bonjour JB

Chico, regarde ce fichier avec temporary=true, la barre d'outils ne reste pas lorsqu'on quitte Excel, ce n'est donc pas la peine de la détruire en quittant Excel.

Voir fichier joint
 

Pièces jointes

  • BO_Ephemere.xls
    38 KB · Affichages: 85