Je souhaiterais créer un sous menu (disons "Commande 1") d'un Menu (disons
"Mon Menu") que j'ai créé il y a longtemps avec l'éditeur de Menu (sous
Excel 95 je crois)
J'ai bien essayé la procédure classique (Outils, Personnaliser, Commande,
Nouveau Menu...) mais cette procédure fonctionne pour des menus existants
par défaut mais pas pour des menus ajoutés à la barre standard. En fait cela
fonctionne pour la session en cours, mais lorsque l'on sort, impossible de
récupérer le menu nouvellement créé.
La seule manière de s'en sortir est d'utiliser une procédure VBA.
Quelqu'un peut-il m'écrire la commande auto-open et auto-close pour créer
mon sous menu "Commande 1" dans "Mon Menu"
Merci à tous,
Michel
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ChrisV
Bonjour Michir,
Un petit exemple...
Dans un module du classeur ---------------------------------------
Sub ajouM() Set newM = CommandBars(1).Controls.Add(Type:=msoControlPopup, _ Before:=CommandBars(1).Controls("?").Index, Temporary:=True) newM.Caption = "&MPFE" Set cmd1 = CommandBars(1).Controls("MPFE").Controls.Add(msoControlPopup) With cmd1 .Caption = "&Menu1" .Controls.Add (msoControlButton) With .Controls(1) .Caption = "Sous-menu&1" .OnAction = "Bonjour" .FaceId = 342 End With .Controls.Add (msoControlButton) With .Controls(2) .Caption = "Sous-menu&2" .OnAction = "Salut" .FaceId = 352 End With End With Set cmd2 = CommandBars(1).Controls("MPFE").Controls.Add With cmd2 .Caption = "Me&nu2" .OnAction = "aBientot" End With Set newM = Nothing Set cmd1 = Nothing Set cmd2 = Nothing End Sub
Sub supM() On Error Resume Next Application.CommandBars(1).Controls("MPFE").Delete End Sub
Sub Bonjour() MsgBox "Hello !" End Sub
Sub Salut() MsgBox "Au revoir !" End Sub
Sub aBientot() MsgBox "A bientôt sur MPFE !" End Sub
Dans la feuille de code de ThisWorkbook ---------------------------------------------------------
Private Sub Workbook_Open() ajouM End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) supM End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window) On Error Resume Next Application.CommandBars(1).Controls("MPFE").Visible = True End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) On Error Resume Next Application.CommandBars(1).Controls("MPFE").Visible = False End Sub
ChrisV
"Michir" a écrit dans le message de news: 42ac9514$0$884$
Bonsoir,
Je souhaiterais créer un sous menu (disons "Commande 1") d'un Menu (disons "Mon Menu") que j'ai créé il y a longtemps avec l'éditeur de Menu (sous Excel 95 je crois) J'ai bien essayé la procédure classique (Outils, Personnaliser, Commande, Nouveau Menu...) mais cette procédure fonctionne pour des menus existants par défaut mais pas pour des menus ajoutés à la barre standard. En fait cela fonctionne pour la session en cours, mais lorsque l'on sort, impossible de récupérer le menu nouvellement créé. La seule manière de s'en sortir est d'utiliser une procédure VBA. Quelqu'un peut-il m'écrire la commande auto-open et auto-close pour créer mon sous menu "Commande 1" dans "Mon Menu" Merci à tous, Michel
Bonjour Michir,
Un petit exemple...
Dans un module du classeur
---------------------------------------
Sub ajouM()
Set newM = CommandBars(1).Controls.Add(Type:=msoControlPopup, _
Before:=CommandBars(1).Controls("?").Index, Temporary:=True)
newM.Caption = "&MPFE"
Set cmd1 = CommandBars(1).Controls("MPFE").Controls.Add(msoControlPopup)
With cmd1
.Caption = "&Menu1"
.Controls.Add (msoControlButton)
With .Controls(1)
.Caption = "Sous-menu&1"
.OnAction = "Bonjour"
.FaceId = 342
End With
.Controls.Add (msoControlButton)
With .Controls(2)
.Caption = "Sous-menu&2"
.OnAction = "Salut"
.FaceId = 352
End With
End With
Set cmd2 = CommandBars(1).Controls("MPFE").Controls.Add
With cmd2
.Caption = "Me&nu2"
.OnAction = "aBientot"
End With
Set newM = Nothing
Set cmd1 = Nothing
Set cmd2 = Nothing
End Sub
Sub supM()
On Error Resume Next
Application.CommandBars(1).Controls("MPFE").Delete
End Sub
Sub Bonjour()
MsgBox "Hello !"
End Sub
Sub Salut()
MsgBox "Au revoir !"
End Sub
Sub aBientot()
MsgBox "A bientôt sur MPFE !"
End Sub
Dans la feuille de code de ThisWorkbook
---------------------------------------------------------
Private Sub Workbook_Open()
ajouM
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
supM
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
On Error Resume Next
Application.CommandBars(1).Controls("MPFE").Visible = True
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
On Error Resume Next
Application.CommandBars(1).Controls("MPFE").Visible = False
End Sub
ChrisV
"Michir" <michir1789@wanadoo.fr> a écrit dans le message de news:
42ac9514$0$884$8fcfb975@news.wanadoo.fr...
Bonsoir,
Je souhaiterais créer un sous menu (disons "Commande 1") d'un Menu (disons
"Mon Menu") que j'ai créé il y a longtemps avec l'éditeur de Menu (sous
Excel 95 je crois)
J'ai bien essayé la procédure classique (Outils, Personnaliser, Commande,
Nouveau Menu...) mais cette procédure fonctionne pour des menus existants
par défaut mais pas pour des menus ajoutés à la barre standard. En fait
cela fonctionne pour la session en cours, mais lorsque l'on sort,
impossible de récupérer le menu nouvellement créé.
La seule manière de s'en sortir est d'utiliser une procédure VBA.
Quelqu'un peut-il m'écrire la commande auto-open et auto-close pour créer
mon sous menu "Commande 1" dans "Mon Menu"
Merci à tous,
Michel
Dans un module du classeur ---------------------------------------
Sub ajouM() Set newM = CommandBars(1).Controls.Add(Type:=msoControlPopup, _ Before:=CommandBars(1).Controls("?").Index, Temporary:=True) newM.Caption = "&MPFE" Set cmd1 = CommandBars(1).Controls("MPFE").Controls.Add(msoControlPopup) With cmd1 .Caption = "&Menu1" .Controls.Add (msoControlButton) With .Controls(1) .Caption = "Sous-menu&1" .OnAction = "Bonjour" .FaceId = 342 End With .Controls.Add (msoControlButton) With .Controls(2) .Caption = "Sous-menu&2" .OnAction = "Salut" .FaceId = 352 End With End With Set cmd2 = CommandBars(1).Controls("MPFE").Controls.Add With cmd2 .Caption = "Me&nu2" .OnAction = "aBientot" End With Set newM = Nothing Set cmd1 = Nothing Set cmd2 = Nothing End Sub
Sub supM() On Error Resume Next Application.CommandBars(1).Controls("MPFE").Delete End Sub
Sub Bonjour() MsgBox "Hello !" End Sub
Sub Salut() MsgBox "Au revoir !" End Sub
Sub aBientot() MsgBox "A bientôt sur MPFE !" End Sub
Dans la feuille de code de ThisWorkbook ---------------------------------------------------------
Private Sub Workbook_Open() ajouM End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) supM End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window) On Error Resume Next Application.CommandBars(1).Controls("MPFE").Visible = True End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) On Error Resume Next Application.CommandBars(1).Controls("MPFE").Visible = False End Sub
ChrisV
"Michir" a écrit dans le message de news: 42ac9514$0$884$
Bonsoir,
Je souhaiterais créer un sous menu (disons "Commande 1") d'un Menu (disons "Mon Menu") que j'ai créé il y a longtemps avec l'éditeur de Menu (sous Excel 95 je crois) J'ai bien essayé la procédure classique (Outils, Personnaliser, Commande, Nouveau Menu...) mais cette procédure fonctionne pour des menus existants par défaut mais pas pour des menus ajoutés à la barre standard. En fait cela fonctionne pour la session en cours, mais lorsque l'on sort, impossible de récupérer le menu nouvellement créé. La seule manière de s'en sortir est d'utiliser une procédure VBA. Quelqu'un peut-il m'écrire la commande auto-open et auto-close pour créer mon sous menu "Commande 1" dans "Mon Menu" Merci à tous, Michel
AV
Ayant déjà été confronté au problème, je te conseille, soit d'ouvrir ton fichier avec XL5 ou 95 et de rajouter ton sous-menu par l'intermédiaire de l'éditeur de menus, soit, (fortement conseillé), de refaire carrément ton fichier au format XL 97 ou +
AV
Ayant déjà été confronté au problème, je te conseille, soit d'ouvrir ton fichier
avec XL5 ou 95 et de rajouter ton sous-menu par l'intermédiaire de l'éditeur de
menus, soit, (fortement conseillé), de refaire carrément ton fichier au format
XL 97 ou +
Ayant déjà été confronté au problème, je te conseille, soit d'ouvrir ton fichier avec XL5 ou 95 et de rajouter ton sous-menu par l'intermédiaire de l'éditeur de menus, soit, (fortement conseillé), de refaire carrément ton fichier au format XL 97 ou +