J'ai modifié mon code afin de montrer comment affecter une icône à un bouton
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| '******* A placer dans un module standard **********
Sub CommandBarreCréerAvecBoutonEtMenu()
Dim LaBarre As CommandBar
Dim LeBouton
Dim MonMenu
'Valider la ligne suivante si la barre existe déjà
'Application.CommandBars("Cémabarre").Delete
'Pour créer une barre de commande
'1 => affiche la barre en haut, true => barre provisoire
Application.CommandBars.Add "Cémabarre", 1, 0, True
'pour ajouter un bouton tout seul
Set MonControl = CommandBars("Cémabarre").Controls _
.Add(Type:=msoControlButton, ID:=280) 'Voir Remarque
With MonControl
.Style = msoButtonIcon
.Caption = "Afficher ma photo"
.OnAction = "ÇaCestMoi"
End With
'pour ajouter un menu
Set LeBouton = CommandBars("Cémabarre").Controls _
.Add(Type:=msoControlPopup)
'Pour ajouter des commandes au menu
With LeBouton
.Caption = "Affiche un menu"
Set MonMenu = LeBouton.Controls.Add(msoControlPopup)
With MonMenu
.Caption = "Barregraphe Dépenses"
.OnAction = "BarregrapheDépenses"
End With
Set MonMenu = Nothing
Set MonMenu = LeBouton.Controls.Add(msoControlButton)
With MonMenu
.Caption = "Camembert Dépenses"
.OnAction = "CamembertDépenses"
End With
Set MonMenu = Nothing
End With
Set LeBouton = Nothing
Set MonControl = Nothing
'Pour afficher la barre de commande
Application.CommandBars("Cémabarre").Visible = True
End Sub
'******* A placer dans ThisWorkbook **********
Private Sub Workbook_Open()
CommandBarreCréerAvecBoutonEtMenu
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Pour la masquer
Application.CommandBars("Cémabarre").Visible = False
'Pour supprimer la barre
Application.CommandBars("Cémabarre").Delete
End Sub |
Remarque : Pour connaître le N° de l'icône, afficher la barre d'outils "Icônes" passer la souris sur l'icône désirée.
Soit par code 
Application.CommandBars("Icones").Visible = True
A+
Partager