Limiter une macro à un classeur

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

V i n c e n t

XLDnaute Nouveau
Bonjour à toutes et tous,

J'ai besoin de votre aide pour une petite astuce concernant une macro.

J'ai créé 2 nouveaux boutons dans la barre d'outils Excel et j'ai un petit souci concernant l'apparation de ces boutons sur tout les fichiers Excel ouverts.

De plus, plusieurs fichiers contienent ces boutons et si j'en ouvre plusieurs cela ajoute 2 boutons à chaque ouverture.

Donc, comment limiter la macro au classeur actif ?
J'ai essayé plusieurs trucs mais sans succès.

Merci d'avance pour votre aide.

Vincent.

Code:
Private Sub Boutons()
    
    Set barremenu = ThisWorkbook.Application.CommandBars("Worksheet Menu Bar")
    Set mesboutons = barremenu.Controls.Add
    With mesboutons
        .Caption = "DEMARRER LE CALCUL"
        .FaceId = 960
        .Style = msoButtonIconAndCaption
        .OnAction = "Calcul"
        .TooltipText = "Démarrage du calcul automatique"
        .BeginGroup = True
    End With
    
    Set mesboutons = barremenu.Controls.Add
    With mesboutons
        .Caption = "ARRETER LE CALCUL"
        .FaceId = 283
        .Style = msoButtonIconAndCaption
        .OnAction = "PasCalcul"
        .TooltipText = "Arrêt du calcul automatique"
    End With
 
End Sub


Code:
Private Sub Workbook_Open()
Application.Run "Boutons"
End Sub
 
Re : Limiter une macro à un classeur

Bonjour


A la fermeture du classeur
Code:
Sub Workbook_BeforeClose(Cancel As Boolean)
DelBO ' supprimer la barre à outils
' on remet les barres d'outils
DelBO ' pour supprimer le résidu
End Sub

Code:
Sub DelBO()
On Error Resume Next
Application.CommandBars(nom de la barre d'outils).Delete
End Sub

En utilisant une procédure cela permet de supprimer la barre d'outils sans être obligé de fermer.

JP
 
Re : Limiter une macro à un classeur

Merci pour ta réponse mais ce n'est pas tout à fait mon problème.

J'ai prévu de quoi supprimer les botons en fermeture du classeur.

Mon souci c'est vraiment que les bontons ne soit disponible que sur le classeur actif.
Mes boutons sont sur la barre outils de Excel et du coup tous les classeurs sont affectés par la macro.

J'ai essayé un truc du style

Activeworbook = Thisworkbook.
Thisworkbook.Application.CommandBars("Worksheet Menu Bar")
ect...

Mais meme résultat.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
459
Réponses
5
Affichages
477
Réponses
2
Affichages
1 K
Réponses
2
Affichages
1 K
Retour