Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Bouton pour menu

P

Pascal

Guest
Bonjour à tout le forum,

J’ai une petite question à vous poser, mais je soupçonne que la réponse va être indépendante d’Excel :
Comment créer, stocker et attribuer un numéro faceid à un bouton pour le récupérer lors de la création de menu ?

Merci par avance pour votre réponse et bonne soirée à tous
 
Z

Zon

Guest
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+++
 
P

Pascal

Guest
Zon.... un grand merci !!

Je suis petri d'admiration !

Il ne me reste plus qu'à adapter ta ressource dans mes macros et le tour sera joué.

Encore merci pour ta précieuse aide

Bonne fin de journée.
Pascal
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…