Zone de liste dans une barre de menu excel 2007

bqtr

XLDnaute Accro
Bonjour à tous,

Je viens de passer sous Excel 2007 et j'ai déjà des problèmes :(.
Sur mon fichier fait avec Excel 2003 tout est nickel mais avec Excel 2007 je n'arrive pas à récuper la zone de liste de ma barre de menu.

La nouvelle barre se place bien dans l'onglet "Complément", les deux boutons sont là mais pas la zone de liste qui me sert pour séléctionner les mois et ouvrir un USF.

Sur le forum je ne trouve rien qui traite de ce problème.
Pour l'instant le langage XML c'est du chinois pour moi et programmer une nouvelle barre dans le ruban n'est pas dans mes cordes.
Donc en attendant de m'y mettre (grâce aux tutos de MichelXLD) je sollicite votre aide pour essayer de résoudre ce problème.
Comment faire pour afficher une zone de liste dans une barre de menu créée avec Excel 2003 sous Excel 2007 ?

Voici le code qui crée la barre sous Excel 2003 :
Code:
Sub barre()
Dim aide As CommandBarControl
Dim Mabarre As CommandBarPopup
Dim MabarComd As CommandBarControl
'Dim SousMenu As CommandBarButton
Dim k As Byte
supmabarre
Set aide = CommandBars(1).FindControl(ID:=30010)
If aide Is Nothing Then
   Set Mabarre = CommandBars(1).Controls.Add(Type:=msoControlPopup, temporary:=True)
Else
   Set Mabarre = CommandBars(1).Controls.Add(Type:=msoControlPopup, before:=aide.Index, temporary:=True)
End If
Mabarre.Caption = "Planning :"
[B]Set MabarComd = Mabarre.Controls.Add(Type:=msoControlDropdown)[/B]
[B]With MabarComd[/B]
[B].Style = msoComboLabel[/B]
[B].Caption = "Mois :"[/B]
[B]'.TooltipText = "Sélectionner un mois dans la liste"[/B]
[B].OnAction = "Usf1"[/B]
[B]For k = 1 To 12[/B]
[B] .AddItem MonthName(k)[/B]
[B] .ListIndex = 1[/B]
[B]Next k[/B]
[B].BeginGroup = True[/B]
[B]End With[/B]
Set MabarComd = Mabarre.Controls.Add(Type:=msoControlButton)
With MabarComd
  .Style = msoButtonCaption
  .Caption = "Nouvelle Année"
  .BeginGroup = True
  '.TooltipText = "Changement d'année"
  .OnAction = "Usf3"
  .BeginGroup = True
End With
Set MabarComd = Mabarre.Controls.Add(Type:=msoControlButton)
With MabarComd
  .Style = msoButtonCaption
  .Caption = "Imprimer"
  .BeginGroup = True
  '.TooltipText = "Imprime le mois"
  .OnAction = "Imprim"
End With
End Sub

Merci à tous ceux qui prendront le temps de lire ceci (un peu long je sais :eek:) et qui j'espère pourront m'aider.

Bonne fin de nuit.
 

13GIBE59

XLDnaute Accro
Re : Zone de liste dans une barre de menu excel 2007

Bonjour bqtr.

Dans mon livre de comptes- qui ne connaît pas ton désagrément sous 2007-, j'ai mis ça comme code :

Code:
' ********* Ajout d'une ComboBox avec liste des onglets ********************************
        Set cbo = cb.Controls.Add(msoControlDropdown, , , , True)
        With cbo
            .BeginGroup = True
            .TooltipText = "Sélectionner un onglet"
            .OnAction = "SelectCboOnglets"
            .Width = 130
            .Style = msoButtonAutomatic
            .Tag = "cboOnglets"
            For Each f In ActiveWorkbook.Sheets
            If f.Name = "Graphiques" Then
            Else
            .AddItem (f.Name)
            End If
            Next f
            End With

La seule différence avec ton code vient du ".Style".
Essaie, on ne sait jamais.
 

bqtr

XLDnaute Accro
Re : Zone de liste dans une barre de menu excel 2007

Bonsoir Michel, Jean-Bernard

Merci pour vos réponses, malheureusement la modif que tu donnes Jean-Bernard ne change rien, j'ai résolu le problème en créant une nouvelle barre commande.
Avec le précédant code je rajoutais un bouton à la barre de menu d'Excel, ce qui n'a pas l'air de fonctionner avec Excel 2007 du moins de cette façon.

Voici le code utilisé :
Code:
Sub barre()

Dim Mabarre As CommandBar
Dim MabarComd As CommandBarControl
Dim k As Byte

SupMabarre

Set Mabarre = CommandBars.Add(Name:="Planning", Position:=msoBarTop, Temporary:=True)
Mabarre.Visible = True

Set MabarComd = Mabarre.Controls.Add(Type:=msoControlButton)

With MabarComd
  .Style = msoButtonCaption
  .Caption = "Nouvelle Année"
  .TooltipText = "Changement d'année"
  .OnAction = "Usf3"
End With
    
Set MabarComd = Mabarre.Controls.Add(msoControlComboBox)

With MabarComd
  .Style = msoComboLabel
  .Caption = "Mois :"
  .TooltipText = "Sélectionner un mois dans la liste"
  .OnAction = "Usf1"
    For k = 1 To 12
     .AddItem MonthName(k)
     .ListIndex = 1
    Next k
End With

Set MabarComd = Mabarre.Controls.Add(Type:=msoControlButton)

With MabarComd
  .Style = msoButtonCaption
  .Caption = "Imprimer"
  .TooltipText = "Imprime le mois"
  .OnAction = "Imprim"
End With

End Sub

Petit détail esthétique : l'affichage des contrôles sur la barre se fait horizontalement, (bouton1-zone de liste-bouton2). Y a t'il un moyen pour mettre le contenu de la barre verticalement comme ceci ?
bouton1
zone de liste
bouton2
Je n'ai rien trouvé dans les propriétés.

Michel je regarde ton fichier de suite

Bonne soirée :)
 

MJ13

XLDnaute Barbatruc
Re : Zone de liste dans une barre de menu excel 2007

Re Bqtr, Jean-Bernard.

l'affichage des contrôles sur la barre se fait horizontalement, (bouton1-zone de liste-bouton2). Y a t'il un moyen pour mettre le contenu de la barre verticalement comme ceci ?
bouton1
zone de liste
bouton2

A mon avis cela doit être difficile (je ne l'ai encore jamais vu ou peut-être en faisant des sous-menus). Mais bon on ne sait jamais :).

Je regarderai jeudi.
 

bqtr

XLDnaute Accro
Re : Zone de liste dans une barre de menu excel 2007

Bonsoir Michel,

Effectivement c'est pas simple, je vais donc passer par des sous-menus et réorganiser tout ça. Pas la peine de te casser tête :)

Merci et Bonne nuit
 

bqtr

XLDnaute Accro
Re : Zone de liste dans une barre de menu excel 2007

Bonjour tous le monde,
Bonjour klin89,

Merci pour le lien, mais même en jouant avec la propriété Width ca ne fonctionne pas avec Excel 2007.

Ne perdez plus de temps à chercher une solution, j'ai refait ma barre avec la zone de liste et un bouton qui donne accès à un sous menu et ça me convient parfaitement.

Merci à tous.

Bonne fin après-midi
 

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 023
Membres
101 873
dernier inscrit
excellllll