Bouton macro barre d'outils présent dans tous mes fichiers excel

Boubas1

XLDnaute Occasionnel
Bonsoir,

J'ai crée un bouton de lancement de ma macro dans la barre d'outils en haut. Mais du coup, ce bouton se retrouve dans tous mes fichiers excel.
Est -ce possible que mon bouton apparaisse seulement que dans mon fichier excel concerné par ma macro ? Merci.
 

kjin

XLDnaute Barbatruc
Re : Bouton macro barre d'outils présent dans tous mes fichiers excel

Bonsoir,
Chez moi, on dit bonjour, sûrement....merci aussi !:mad:
Dans le module de ThisWorkBook...
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
KillLaBarraBoubas
End Sub

Private Sub Workbook_Open()
CreeLaBarraBoubas
End Sub
...et dans un module standard
Code:
Sub CreeLaBarraBoubas()
Dim cmdBar As CommandBar
Dim btnBar As CommandBarControl
On Error Resume Next
'ajoute une barre
Set cmdBar = CommandBars.Add(Name:="LaBarraBoubas1")
With cmdBar
    .Visible = True
    .Position = msoBarTop
    'ajoute un bouton
    Set btnBar = .Controls.Add(Type:=msoControlButton)
    With btnBar
        .Style = msoButtonCaption
        .Caption = "ZeJoliBouton"
        'la macro à activer
        .OnAction = "ZeMacro"
    End With
End With
End Sub

Sub KillLaBarraBoubas()
On Error Resume Next
CommandBars("LaBarraBoubas1").Delete
End Sub

Sub ZeMacro()
MsgBox "c'est le bouton de la LaBarraBoubas"
End Sub
kjin
 

bérylion

XLDnaute Occasionnel
Re : Bouton macro barre d'outils présent dans tous mes fichiers excel

Bonsoir,
Chez moi, on dit bonjour, sûrement....merci aussi !:mad:
Dans le module de ThisWorkBook...
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
KillLaBarraBoubas
End Sub

Private Sub Workbook_Open()
CreeLaBarraBoubas
End Sub
...et dans un module standard
Code:
Sub CreeLaBarraBoubas()
Dim cmdBar As CommandBar
Dim btnBar As CommandBarControl
On Error Resume Next
'ajoute une barre
Set cmdBar = CommandBars.Add(Name:="LaBarraBoubas1")
With cmdBar
    .Visible = True
    .Position = msoBarTop
    'ajoute un bouton
    Set btnBar = .Controls.Add(Type:=msoControlButton)
    With btnBar
        .Style = msoButtonCaption
        .Caption = "ZeJoliBouton"
        'la macro à activer
        .OnAction = "ZeMacro"
    End With
End With
End Sub

Sub KillLaBarraBoubas()
On Error Resume Next
CommandBars("LaBarraBoubas1").Delete
End Sub

Sub ZeMacro()
MsgBox "c'est le bouton de la LaBarraBoubas"
End Sub
kjin

Salut,
si on veut répondre à la question

Est -ce possible que mon bouton apparaisse seulement que dans mon fichier excel concerné par ma macro ?

on modifiera légèrement le thisworkbook

Code:
Dim WithEvents XL As Application

Private Sub XL_WorkbookActivate(ByVal Wb As Workbook)
Application.CommandBars("LaBarraBoubas1").Visible = (Wb.Name = ThisWorkbook.Name)
End Sub

Private Sub Workbook_Open()
Set XL = Excel.Application
CreeLaBarraBoubas
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
KillLaBarraBoubas
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175