Créer une nouvelle barre de menu

Bonjour,

Je désire créer une nouvelle barre de menu, chose que j'avais déjà réalisé dans le temps. mais je ne comprends pas le code qui suit ne fonctionne pas : la barre n'apparaît pas !!
Private Sub Workbook_Open()
    Dim Menu
    Dim Commande
    Dim Barre
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
    Application.DisplayFormulaBar = False 'masquage de la barre de formule
    Application.DisplayStatusBar = Not Application.DisplayStatusBar  'masquage de la barre d'état
    ActiveWindow.DisplayWorkbookTabs = False  ' masquage des onglets et empêche de naviguer entre les feuilles
    ActiveWindow.DisplayHeadings = False   ' masquage des entêtes de lignes et de colonnes
    ActiveWindow.DisplayHorizontalScrollBar = False   ' Masquage de l'ascenceur horizontal
    ActiveWindow.DisplayVerticalScrollBar = False   ' masquage de l'ascenceur vertical

    'Pour créer la barre de commande
    Set Barre = Application.CommandBars.Add("MaBarre", msoBarTop, True, True)  'true pour barre temporaire
    'pour ajouter un menu
    Set Menu = Barre.Controls.Add(Type:=msoControlPopup)
        
        'Ajouter une commande au menu
        With Menu
            .Caption = "Mes commandes" 'Caption du menu

            Set Commande = Menu.Controls.Add(msoControlPopup)
               With Commande
                    .Caption = "Page1"  'Caption de la commande
                    .OnAction = "Macro1"   'Nom de la macro à exécuter
               End With
            Set LaCommande = Nothing
        End With

    Set Menu = Nothing
    Set Commande = Nothing
    
    'Pour afficher la barre de commande
    Application.CommandBars("MaBarre").Visible = True
End Sub


je ne comprends pas pourquoi
Merci de m'expliquer mon ou mes erreur(s)
Bonne soirée
Jacques

2 réponses

  1. Bonsoir,

    Merci pour ta proposition qui évidemment fonctionne parfaitement.
    Mais malheureusement je suis exigent : je veux ne faire apparaître que la nouvelle barre de commande, l'ancienne, celle d'excell, disparaissant.
    Je sais que j'avais réussi cela lors de la création d'un produit dans les années 2006, mais je ne peux plus y faire référence car ce produit, trop vieux, je l'ai supprimé.
    Moralité il faut toujours conserver ses réalisations et comme le proverbe le dit "c'est avec les vieilles marmites que l'on fait les meilleures soupes"
    Bref j'ai biaisé mon problème en utilisant des formulaires .... un peu plus de travail, c'est tout.
    Je ne ferme pas ce post au cas où .......
    Merci et bonne soirée
    Jacques
    0
    1. Contributeur
      Bonjour,

      a mettre dans ThisWorkbook:

      Option Explicit
      Private Sub Workbook_BeforeClose(Cancel As Boolean)
       'Pour supprimer la barre de commande à l   a fermeture
          Application.CommandBars("MaBarre").Delete
      End Sub
      Private Sub Workbook_Open()
          Dim Menu
          Dim Commande
          Dim Barre
         'Pour créer la barre de commande
          Set Barre = Application.CommandBars.Add("MaBarre", msoBarTop, True, True)  'true pour barre temporaire
          'pour ajouter un menu
          Set Menu = Barre.Controls.Add(Type:=msoControlPopup)
              
              'Ajouter une commande au menu
              With Menu
                  .Caption = "Mes commandes" 'Caption du menu
      
                  Set Commande = Menu.Controls.Add(msoControlPopup)
                     With Commande
                          .Caption = "Page1"  'Caption de la commande
                          .OnAction = "Macro1"   'Nom de la macro à exécuter
                     End With
              End With
      
          Set Menu = Nothing
          Set Commande = Nothing
          
          'Pour afficher la barre de commande
          Application.CommandBars("MaBarre").Visible = True
      End Sub
      
      


      ce qui donne ceci



      Voilà
      0