Salut,
Si tu veux rajouter une icône perso il suffit de faire un copier coller de cette image, il suffit donc de la stocker sur une des feuilles de ton classeur(elle peut être cachée). Voici un exemple à coller dans un module standard:
Const NomMenu = "&Monmenu"
Const Menu1$ = "&SousMenu1 "
Const Menu2$ = "S&ousMenu2 "
Const Menu3$ = "So&usMenu3"
Const NomF$ = "Feuil1" 'Feuille où sont stockées les images
Sub MenuC()
Dim Menu As CommandBarControl, MenuItem As CommandBarControl
Dim Tnom, TFaceId, I As Byte
On Error Resume Next
SupprMenu
Tnom = Array(Menu1, Menu2, Menu3)
TFaceId = Array("Image 1", 49, "Image 2") 'à adapter
Set Menu = CommandBars(1).Controls.Add(msoControlPopup)
Menu.Caption = NomMenu
For I = LBound(Tnom) To UBound(Tnom)
Set MenuItem = Menu.Controls.Add(msoControlButton)
With MenuItem
.Caption = Tnom(I)
.OnAction = "Macro" & I + 1
If IsNumeric(TFaceId(I)) Then
.FaceId = TFaceId(I)
Else
CopieImg TFaceId(I)
.PasteFace
End If
End With
Next I
End Sub
Sub Macro1()
MsgBox Menu1
End Sub
Sub Macro2()
MsgBox Menu2
End Sub
Sub Macro3()
MsgBox Menu3
End Sub
Sub SupprMenu()
On Error Resume Next
CommandBars(1).Controls(NomMenu).Delete
End Sub
Private Sub CopieImg(ByVal NomS$)
ThisWorkbook.Sheets(NomF).Shapes(NomS).Copy
End Sub
A+++