XL 2010 Création de menus personnalisés

Phillip

XLDnaute Occasionnel
Bonjour,

j'essaye de créer des barres de menus personalisées. Je n'en suis qu'au début et ça plante déjà. J'ai regardé soigneusement la syntaxe, et il me semble que c'est bon, alors qu'est-ce qui ne va pas. Le code suivant retourne l'erreur :'invalid procedure call or argument'"

Code:
Dim mabarre As CommandBars
'
Sub Ajout_BarreMenu()

'CommandBars.Add(Name, [Position], [MenuBar], [Temporary]).Propriété = ValeurPropriété

Set mabarre = CommandBars.Add(Name:="Menu personnel", Position:=msoBarTop, MenuBar:=True, Temporary:=True)
'
End Sub


Merci de votre aide

Cordialement

Phillip
 

gosselien

XLDnaute Barbatruc
Bonjour,

chez moi (excel 2007) j'ai ceci qui fonctionne :)

Set Monmenu = Application.CommandBars(1).FindControl(ID:=30010)

If Monmenu Is Nothing Then
' Add the menu to the end
Set Ajout = CommandBars(1).Controls.Add(Type:=msoControlPopup, Temporary:=True)
Else
' Add the menu before Help
Set Ajout = CommandBars(1).Controls.Add(Type:=msoControlPopup, Before:=Monmenu.Index, Temporary:=True)
End If


P.
 

Roland_M

XLDnaute Barbatruc
Bonsoir,

chez moi (2007) ceci fonctionne !

Sub Ajout_BarreMenu()
Dim mabarre As CommandBar
'CommandBars.Add(Name, [Position], [MenuBar], [Temporary]).Propriété = ValeurPropriété
Set mabarre = CommandBars.Add(Name:="Menu personnel", Position:=msoBarTop, MenuBar:=True, Temporary:=True)
End Sub
 

Phillip

XLDnaute Occasionnel
Bonjour,

Alors là c'est grave parce que ça n'est peut-être pas Excel le problème, c'est peut-être moi. Dans le fichier joint, j'ai copié le tout petit bout de code qui ajoute une commande bar, et ça ne fait....rien..! Ou alors Où ???

help

merci

Cordialement

Phillip
 

Pièces jointes

  • mabarre.xlsm
    14.5 KB · Affichages: 47

Phillip

XLDnaute Occasionnel
Bon alors effectivement c'est grave...C'est moi. Ca marche mais je n'ai pas vu. Quand je m'entête, ça plante parce que comme ça a déjà marché, ça ne peut pas re-créer la command bar...

Désolé, je suis une truffe ; merci de vos recherches...

Cordialement
 

Roland_M

XLDnaute Barbatruc
re

je ne comprend pas bien non plus !
mais ceci fonctionne au lancement dans le thisworkbook

Code:
'ceci dans le thisworkbook
Private Const NomDuMenuBarPerso$ = "MENU Personnel"

Private Sub Workbook_Open()
SelectMenu
End Sub

Private Sub Workbook_Activate()
SelectMenu
End Sub

Private Sub Workbook_Deactivate()
DeSelectMenu
End Sub

Public Sub DeSelectMenu()
On Error Resume Next: Application.CommandBars(NomDuMenuBarPerso$).Delete
End Sub

Public Sub SelectMenu()
DeSelectMenu 'en 1' au cas ou !?
' créat
Dim NewBarre As CommandBar, BarMenu As CommandBarControl
Set NewBarre = Application.CommandBars.Add(Name:=NomDuMenuBarPerso$, Position:=msoBarTop, MenuBar:=False, Temporary:=True)
Set BarMenu = NewBarre.Controls.Add(msoControlPopup)
BarMenu.Caption = NomDuMenuBarPerso$
'place les actions
Rout$ = "nom d'une macro existante !" '< nom de la macro à exécuter
Titr$ = "ici titre pour la macro" '< titre pour choix dans menu pour lancer cette macro
With BarMenu.Controls.Add(msoControlButton)
.Caption = Titr$: .OnAction = Rout$
End With
NewBarre.Visible = True
Set NewBarre = Nothing: Set BarMenu = Nothing
End Sub


EDIT:
tu disais: Alors là c'est grave parce que . . .
je pense que oui, rien qu'à voir la tête de ton avatar, c'est même très grave :D
 
Dernière édition:

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé