Sub L_lancer() UserForm1.Show End Sub Sub BarOutil() Dim mesBarres As CommandBars Dim mabarre As CommandBar Dim MaBarre2 As CommandBar Dim lebouton As CommandBarButton Set mesBarres = ActiveExplorer.CommandBars ' La collection des barres et menus de Outlook For Each mabarre In mesBarres ' recherche de la barre Essai de barre If mabarre.NameLocal = "Essai de barre" Then Set MaBarre2 = mabarre End If Next If MaBarre2 Is Nothing Then ' la barre n'a pas été trouvée, on la crée Set MaBarre2 = mesBarres.Add("Essai de barre") Set lebouton = MaBarre2.Controls.Add(msoControlButton) MsgBox "Création barre" End If Set lebouton = MaBarre2.Controls(1) ' accès au 1er bouton de la barre lebouton.Caption = "Mon bouton à moi" ' affectation du nom du bouton lebouton.TooltipText = "C'est mon bouton à moi" ' affectation de l'infobulle du bouton lebouton.OnAction = "L_lancer" ' affectation de la macro à effectuer, ici NbMessEnvSupp 'du code de session Outlook MaBarre2.Position = msoBarTop ' positionnement de la barre MaBarre2.Protection = msoBarNoMove + msoBarNoCustomize ' Protection de la barre, pour ne pas pouvoir la déplacer ni la 'modifier MaBarre2.Visible = True ' on la rend visible End Sub
Private Sub Application_Startup() BarOutil End Sub
'Insertion sur la barre de menus du bouton de commande "Tri des fournisseurs par nombre de consultations" Set MonBouton2 = MaBarre.Controls.Add(msoControlButton) With MonBouton2 .Style = msoButtonIconAndCaption .FaceId = 591 .OnAction = UserForm_1 .Caption = "Tri des fournisseurs" .TooltipText = "Trier les fournisseurs par nombre de consultations" End With End Sub Sub UserForm_1() UserForm1.Show End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSub CreeMonBouton() Set bar = Application.CommandBars("Standard") With bar.Controls.Add(msoControlButton, , , , True) .Style = msoButtonIconAndCaption .FaceId = 591 .OnAction = "L_lancer" .Caption = "Tri des fournisseurs" .TooltipText = "Trier les fournisseurs par nombre de consultations End With End Sub Sub L_lancer() UserForm1.Show End Sub
Private Sub Application_Startup() Set bar = Application.CommandBars("Standard") With bar.Controls.Add(msoControlButton, , , , True) .Style = msoButtonIconAndCaption .FaceId = 591 .OnAction = "L_lancer" .Caption = "Tri des fournisseurs" .TooltipText = "Trier les fournisseurs par nombre de consultations End With End Sub Sub L_lancer() UserForm1.Show End Sub
Option Explicit Sub CreateMenu() 'crée un nouveau menu. 'peut aussi être utilisé pour créer commandbarbuttons 'peut être automatiquement exécuté d'une macro Auto_Open ou d'un Workbook_Open eventmacro Dim cbMenu As CommandBarControl, cbSubMenu As CommandBarControl RemoveMenu 'effacez le menu s'il existe déjà 'créez un nouveau menu sur commandbar existant (les 6 lignes suivantes) Set cbMenu = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True) With cbMenu .Caption = "&Mon menu" .Tag = 1 .BeginGroup = False End With 'ou ajoutez à un menu existant (utilisez la ligne suivante au lieu des 6 lignes précédentes) 'Le jeu cbMenu = l'Application. CommandBars. FindControl (, 30007)' le Menu d'instruments If cbMenu Is Nothing Then Exit Sub 'n'a pas trouvé le menu... 'ajoutez menuitem au menu With cbMenu.Controls.Add(msoControlButton, 1, , , True) .Caption = "&Ouvrir l'application" .Tag = 2 .OnAction = "L_Lancer" 'on lance l'action 'Icône .FaceId = 9161 'Séparation .BeginGroup = True End With 'ajoutez menuitem au menu With cbMenu.Controls.Add(msoControlButton, 1, , , True) .Caption = "&Accès aux codes de l'application" .Tag = 3 .OnAction = "L_VBA" 'on lance l'action 'Icône .FaceId = 1695 'Séparation .BeginGroup = True End With 'ajoutez menuitem au menu With cbMenu.Controls.Add(msoControlButton, 1, , , True) .Caption = "&Quitter" .OnAction = "L_Quitter" 'on lance l'action 'Icône .FaceId = 9724 'Séparation .BeginGroup = True End With 'ajoutez menuitem au menu With cbMenu.Controls.Add(msoControlButton, 1, , , True) .Caption = "&A Propos" .Tag = 3 .OnAction = "L_Propos" 'on lance l'action 'Icône .FaceId = 9325 'Séparation .BeginGroup = True End With Set cbSubMenu = Nothing Set cbMenu = Nothing End Sub Sub RemoveMenu() 'peut être automatiquement exécuté d'une macro Auto_Close ou d'un Workbook_BeforeClose eventmacro DeleteCustomCommandBarControl "MyTag" 'efface le nouveau menu End Sub Private Sub DeleteCustomCommandBarControl(CustomControlTag As String) 'efface TOUT occurences de commandes de commandbar avec une étiquette = CustomControlTag On Error Resume Next Do Application.CommandBars.FindControl(, , CustomControlTag, False).Delete Loop Until Application.CommandBars.FindControl(, , CustomControlTag, False) Is Nothing On Error GoTo 0 End Sub Sub ShowHideMenu(MenuVisible As Boolean) 'peut être automatiquement exécuté d'une macro Workbook_Activate ou d'un Workbook_Deactivate eventmacro ChangeControlVisibility "MyTag", MenuVisible 'visibilité de menu de boutons End Sub Private Sub ChangeControlVisibility(CustomControlTag As String, MenuVisible As Boolean) 'visibilité de menu de boutons On Error Resume Next Application.CommandBars.FindControl(, , CustomControlTag, False).Visible = MenuVisible On Error GoTo 0 End Sub Sub L_Lancer() UserForm1.Show vbModeless 'Lance la macro End Sub Sub L_Propos() UserForm2.Show vbModeless 'Lance la macro End Sub Sub L_VBA() On Error Resume Next SendKeys "%{F11}" 'ouvre le programme 'alt F11' End Sub Public Sub L_Quitter() On Error Resume Next CommandBars(1).Controls("Mon menu").Delete ThisWorkbook.Close End Sub
Option Explicit Private Sub Workbook_Activate() ShowHideMenu True End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) RemoveMenu End Sub Private Sub Workbook_Deactivate() ShowHideMenu False End Sub Private Sub Workbook_Open() CreateMenu End Sub