bonsoir,
quand on crée une macro complémentaire, c'est mieux si elle met elle même ses barres dans les menus :
Ici mettre un bouton dans le menu fenêtre et l'enlever, On action permet d'indiquer la macro à lancer. Pour le reste voir l'aide et le site de john walkenbash (sur ma page de liens <http://sn1.chez.tiscali.fr/presentation/liensexcel.html> pour télécharger une macro pour trouver les faceid.
Sub init_fenetre()
Set newItem = CommandBars("window").Controls.Add(Type:=msoControlButton)
With newItem
.BeginGroup = False
.Caption = "zone active"
.FaceId = 10
.OnAction = "restreint"
.Move Before:=7
End With
End Sub
Et ici pour enlever le menu à la fermeture du classeur.
Sub DelMenu_restreint()
On Error Resume Next
Application.CommandBars("window").Controls("zone active").Delete
End Sub
on rajoute ainsi ce code dans this workbook pour lancer les macros au bon moment (voir ce fil <http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=144999&t=144984> pour voir à quel endroit installer les 2 macros suivantes :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call DelMenu_restreint
End Sub
Private Sub Workbook_Open()
Call init_fenetre
End Sub
un autre exemple où le bouton est placé dans une barre d'outils
Public Sub Creer_Bouton()
Dim CBb As CommandBarButton
On Error Resume Next
Set CBb = Application.CommandBars("Standard").Controls("vb_to_xld")
On Error GoTo 0
If Not CBb Is Nothing Then Exit Sub
With Application.CommandBars("Standard").Controls.Add(msoControlButton)
.Caption = "VBA->XLD"
.TooltipText = "Mise en forme de code pour le forum XLD"
.OnAction = "vb_to_xld"
.FaceId = 1352
.Style = msoButtonIconAndCaption
.BeginGroup = True
End With
End Sub
A+