Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé en
VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais récupérer
dans une variable le n°de l'item sélectionné et le n° de l'item secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé en
VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais récupérer
dans une variable le n°de l'item sélectionné et le n° de l'item secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé en
VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais récupérer
dans une variable le n°de l'item sélectionné et le n° de l'item secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bonjour,
qu'est ce que tu appelles un menu ?
A+Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bonjour,
qu'est ce que tu appelles un menu ?
A+
Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bonjour,
qu'est ce que tu appelles un menu ?
A+Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bonjour,
qu'est ce que tu appelles un menu ?
A+Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bonjour,
qu'est ce que tu appelles un menu ?
A+
Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bonjour,
qu'est ce que tu appelles un menu ?
A+Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
Deux exemples de création de menus :
--------------------------------------------------------------------------------
Sub testMenu()
'papou, mpfe
Dim monmenu As CommandBarControl, sousmenu1 As CommandBarControl
Dim sousmenu2 As CommandBarControl, sousmenu2_option1, sousmenu2_option2
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set sousmenu1 = monmenu.Controls.Add(msoControlButton, , , , True)
With sousmenu1
.Caption = "&Mise à jour du document"
.OnAction = "Planning"
End With
Set sousmenu2 = monmenu.Controls.Add(msoControlPopup, , , , True)
With sousmenu2
.Caption = "Audit"
Set sousmenu2_option1 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option1
.Caption = "&Individuel"
.OnAction = "Individuel"
End With
Set sousmenu2_option2 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option2
.Caption = "&Tous"
.OnAction = "Tous"
End With
End With
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub
----------------------------------------------------------------------------------
'Création d'un menu avec sous menus dans la barre des menus d'Excel
'd'après E. Tissot, mpfe
Sub Creer_Menu()
Dim NewMenu As CommandBarPopup
Dim NewSubMenu As CommandBarPopup
Dim NewButton As CommandBarButton
' menus d'Excel
nomBarre = "Worksheet menu bar"
'ajouter un menu
Set NewMenu = Application.CommandBars(nomBarre).Controls.Add _
(Type:=msoControlPopup)
NewMenu.Caption = "Macros"
'ajouter un sous-menu au menu
Set NewSubMenu = NewMenu.Controls.Add(Type:=msoControlPopup)
NewSubMenu.Caption = "Divers"
'ajouter un bouton au sous-menu
Set NewButton = NewSubMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 1"
.FaceId = 317
.OnAction = "Suppr_SousMenu"
End With
'ajouter un bouton au menu
Set NewButton = NewMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 2"
.BeginGroup = True
.FaceId = 316
.OnAction = "Suppr_Menu"
End With
End Sub
Sub Suppr_SousMenu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Controls("Divers").Delete
End Sub
Sub Suppr_Menu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub
"anonymousA" a écrit dans le message de news:
4220a5aa$0$3136$bonjour,
qu'est ce que tu appelles un menu ?
A+Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
Deux exemples de création de menus :
--------------------------------------------------------------------------------
Sub testMenu()
'papou, mpfe
Dim monmenu As CommandBarControl, sousmenu1 As CommandBarControl
Dim sousmenu2 As CommandBarControl, sousmenu2_option1, sousmenu2_option2
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set sousmenu1 = monmenu.Controls.Add(msoControlButton, , , , True)
With sousmenu1
.Caption = "&Mise à jour du document"
.OnAction = "Planning"
End With
Set sousmenu2 = monmenu.Controls.Add(msoControlPopup, , , , True)
With sousmenu2
.Caption = "Audit"
Set sousmenu2_option1 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option1
.Caption = "&Individuel"
.OnAction = "Individuel"
End With
Set sousmenu2_option2 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option2
.Caption = "&Tous"
.OnAction = "Tous"
End With
End With
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub
----------------------------------------------------------------------------------
'Création d'un menu avec sous menus dans la barre des menus d'Excel
'd'après E. Tissot, mpfe
Sub Creer_Menu()
Dim NewMenu As CommandBarPopup
Dim NewSubMenu As CommandBarPopup
Dim NewButton As CommandBarButton
' menus d'Excel
nomBarre = "Worksheet menu bar"
'ajouter un menu
Set NewMenu = Application.CommandBars(nomBarre).Controls.Add _
(Type:=msoControlPopup)
NewMenu.Caption = "Macros"
'ajouter un sous-menu au menu
Set NewSubMenu = NewMenu.Controls.Add(Type:=msoControlPopup)
NewSubMenu.Caption = "Divers"
'ajouter un bouton au sous-menu
Set NewButton = NewSubMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 1"
.FaceId = 317
.OnAction = "Suppr_SousMenu"
End With
'ajouter un bouton au menu
Set NewButton = NewMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 2"
.BeginGroup = True
.FaceId = 316
.OnAction = "Suppr_Menu"
End With
End Sub
Sub Suppr_SousMenu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Controls("Divers").Delete
End Sub
Sub Suppr_Menu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
4220a5aa$0$3136$8fcfb975@news.wanadoo.fr...
bonjour,
qu'est ce que tu appelles un menu ?
A+
Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
Deux exemples de création de menus :
--------------------------------------------------------------------------------
Sub testMenu()
'papou, mpfe
Dim monmenu As CommandBarControl, sousmenu1 As CommandBarControl
Dim sousmenu2 As CommandBarControl, sousmenu2_option1, sousmenu2_option2
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set sousmenu1 = monmenu.Controls.Add(msoControlButton, , , , True)
With sousmenu1
.Caption = "&Mise à jour du document"
.OnAction = "Planning"
End With
Set sousmenu2 = monmenu.Controls.Add(msoControlPopup, , , , True)
With sousmenu2
.Caption = "Audit"
Set sousmenu2_option1 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option1
.Caption = "&Individuel"
.OnAction = "Individuel"
End With
Set sousmenu2_option2 = sousmenu2.Controls.Add(msoControlButton, , , ,
True)
With sousmenu2_option2
.Caption = "&Tous"
.OnAction = "Tous"
End With
End With
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub
----------------------------------------------------------------------------------
'Création d'un menu avec sous menus dans la barre des menus d'Excel
'd'après E. Tissot, mpfe
Sub Creer_Menu()
Dim NewMenu As CommandBarPopup
Dim NewSubMenu As CommandBarPopup
Dim NewButton As CommandBarButton
' menus d'Excel
nomBarre = "Worksheet menu bar"
'ajouter un menu
Set NewMenu = Application.CommandBars(nomBarre).Controls.Add _
(Type:=msoControlPopup)
NewMenu.Caption = "Macros"
'ajouter un sous-menu au menu
Set NewSubMenu = NewMenu.Controls.Add(Type:=msoControlPopup)
NewSubMenu.Caption = "Divers"
'ajouter un bouton au sous-menu
Set NewButton = NewSubMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 1"
.FaceId = 317
.OnAction = "Suppr_SousMenu"
End With
'ajouter un bouton au menu
Set NewButton = NewMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 2"
.BeginGroup = True
.FaceId = 316
.OnAction = "Suppr_Menu"
End With
End Sub
Sub Suppr_SousMenu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Controls("Divers").Delete
End Sub
Sub Suppr_Menu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub
"anonymousA" a écrit dans le message de news:
4220a5aa$0$3136$bonjour,
qu'est ce que tu appelles un menu ?
A+Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec des
items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de l'item
secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bon ,
au risque de paraitre tatillon, un menu ou une barre d'outils c'est
pareil. Ce sont des objets Commandbars qui peuvent être déclarés dont le
msobartype peut être différent (msobartypemenubar :type MenuBar (ou 1),
msobartypepopup: type PopUp (ou 2) ou msobartypenormal de type Normal (ou
0)
Ce que tu envoies sont des exemples de création de controles ( objets
CommanbarControls)sur des objets commandbars existants.
ceci précisé,ta demande peut être résolue par la propriété ActionControl
de commanbarcontrol en écrivant dans la procédure associé au onaction de
ton controle l'instruction suivante
CommandBars.ActionControl.index ou si tu le souhaites
CommandBars.ActionControl.caption.
Ce faisant, tu ne déclares qu'une seul procédure on action associéee et tu
réagis dans cette procédure en fonction du N° d'index ou du nom
(caption)et décider ensuite ce que tu veux faire en focntion de ce N° ou
de ce caption.
Si tu a créé une barre d'outils personnalisée, il te faudra sasn doute
travailler avec l'instruction
CommandBars.ActionControl.Parent.Parent.Index pour remonter de controle en
controle.
A+Deux exemples de création de menus :
--------------------------------------------------------------------------------
Sub testMenu()
'papou, mpfe
Dim monmenu As CommandBarControl, sousmenu1 As CommandBarControl
Dim sousmenu2 As CommandBarControl, sousmenu2_option1, sousmenu2_option2
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set sousmenu1 = monmenu.Controls.Add(msoControlButton, , , , True)
With sousmenu1
.Caption = "&Mise à jour du document"
.OnAction = "Planning"
End With
Set sousmenu2 = monmenu.Controls.Add(msoControlPopup, , , , True)
With sousmenu2
.Caption = "Audit"
Set sousmenu2_option1 = sousmenu2.Controls.Add(msoControlButton, , ,
, True)
With sousmenu2_option1
.Caption = "&Individuel"
.OnAction = "Individuel"
End With
Set sousmenu2_option2 = sousmenu2.Controls.Add(msoControlButton, , ,
, True)
With sousmenu2_option2
.Caption = "&Tous"
.OnAction = "Tous"
End With
End With
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub
----------------------------------------------------------------------------------
'Création d'un menu avec sous menus dans la barre des menus d'Excel
'd'après E. Tissot, mpfe
Sub Creer_Menu()
Dim NewMenu As CommandBarPopup
Dim NewSubMenu As CommandBarPopup
Dim NewButton As CommandBarButton
' menus d'Excel
nomBarre = "Worksheet menu bar"
'ajouter un menu
Set NewMenu = Application.CommandBars(nomBarre).Controls.Add _
(Type:=msoControlPopup)
NewMenu.Caption = "Macros"
'ajouter un sous-menu au menu
Set NewSubMenu = NewMenu.Controls.Add(Type:=msoControlPopup)
NewSubMenu.Caption = "Divers"
'ajouter un bouton au sous-menu
Set NewButton = NewSubMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 1"
.FaceId = 317
.OnAction = "Suppr_SousMenu"
End With
'ajouter un bouton au menu
Set NewButton = NewMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 2"
.BeginGroup = True
.FaceId = 316
.OnAction = "Suppr_Menu"
End With
End Sub
Sub Suppr_SousMenu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Controls("Divers").Delete
End Sub
Sub Suppr_Menu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub
"anonymousA" a écrit dans le message de news:
4220a5aa$0$3136$bonjour,
qu'est ce que tu appelles un menu ?
A+Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec
des items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de
l'item secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bon ,
au risque de paraitre tatillon, un menu ou une barre d'outils c'est
pareil. Ce sont des objets Commandbars qui peuvent être déclarés dont le
msobartype peut être différent (msobartypemenubar :type MenuBar (ou 1),
msobartypepopup: type PopUp (ou 2) ou msobartypenormal de type Normal (ou
0)
Ce que tu envoies sont des exemples de création de controles ( objets
CommanbarControls)sur des objets commandbars existants.
ceci précisé,ta demande peut être résolue par la propriété ActionControl
de commanbarcontrol en écrivant dans la procédure associé au onaction de
ton controle l'instruction suivante
CommandBars.ActionControl.index ou si tu le souhaites
CommandBars.ActionControl.caption.
Ce faisant, tu ne déclares qu'une seul procédure on action associéee et tu
réagis dans cette procédure en fonction du N° d'index ou du nom
(caption)et décider ensuite ce que tu veux faire en focntion de ce N° ou
de ce caption.
Si tu a créé une barre d'outils personnalisée, il te faudra sasn doute
travailler avec l'instruction
CommandBars.ActionControl.Parent.Parent.Index pour remonter de controle en
controle.
A+
Deux exemples de création de menus :
--------------------------------------------------------------------------------
Sub testMenu()
'papou, mpfe
Dim monmenu As CommandBarControl, sousmenu1 As CommandBarControl
Dim sousmenu2 As CommandBarControl, sousmenu2_option1, sousmenu2_option2
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set sousmenu1 = monmenu.Controls.Add(msoControlButton, , , , True)
With sousmenu1
.Caption = "&Mise à jour du document"
.OnAction = "Planning"
End With
Set sousmenu2 = monmenu.Controls.Add(msoControlPopup, , , , True)
With sousmenu2
.Caption = "Audit"
Set sousmenu2_option1 = sousmenu2.Controls.Add(msoControlButton, , ,
, True)
With sousmenu2_option1
.Caption = "&Individuel"
.OnAction = "Individuel"
End With
Set sousmenu2_option2 = sousmenu2.Controls.Add(msoControlButton, , ,
, True)
With sousmenu2_option2
.Caption = "&Tous"
.OnAction = "Tous"
End With
End With
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub
----------------------------------------------------------------------------------
'Création d'un menu avec sous menus dans la barre des menus d'Excel
'd'après E. Tissot, mpfe
Sub Creer_Menu()
Dim NewMenu As CommandBarPopup
Dim NewSubMenu As CommandBarPopup
Dim NewButton As CommandBarButton
' menus d'Excel
nomBarre = "Worksheet menu bar"
'ajouter un menu
Set NewMenu = Application.CommandBars(nomBarre).Controls.Add _
(Type:=msoControlPopup)
NewMenu.Caption = "Macros"
'ajouter un sous-menu au menu
Set NewSubMenu = NewMenu.Controls.Add(Type:=msoControlPopup)
NewSubMenu.Caption = "Divers"
'ajouter un bouton au sous-menu
Set NewButton = NewSubMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 1"
.FaceId = 317
.OnAction = "Suppr_SousMenu"
End With
'ajouter un bouton au menu
Set NewButton = NewMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 2"
.BeginGroup = True
.FaceId = 316
.OnAction = "Suppr_Menu"
End With
End Sub
Sub Suppr_SousMenu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Controls("Divers").Delete
End Sub
Sub Suppr_Menu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
4220a5aa$0$3136$8fcfb975@news.wanadoo.fr...
bonjour,
qu'est ce que tu appelles un menu ?
A+
Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec
des items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de
l'item secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan
bon ,
au risque de paraitre tatillon, un menu ou une barre d'outils c'est
pareil. Ce sont des objets Commandbars qui peuvent être déclarés dont le
msobartype peut être différent (msobartypemenubar :type MenuBar (ou 1),
msobartypepopup: type PopUp (ou 2) ou msobartypenormal de type Normal (ou
0)
Ce que tu envoies sont des exemples de création de controles ( objets
CommanbarControls)sur des objets commandbars existants.
ceci précisé,ta demande peut être résolue par la propriété ActionControl
de commanbarcontrol en écrivant dans la procédure associé au onaction de
ton controle l'instruction suivante
CommandBars.ActionControl.index ou si tu le souhaites
CommandBars.ActionControl.caption.
Ce faisant, tu ne déclares qu'une seul procédure on action associéee et tu
réagis dans cette procédure en fonction du N° d'index ou du nom
(caption)et décider ensuite ce que tu veux faire en focntion de ce N° ou
de ce caption.
Si tu a créé une barre d'outils personnalisée, il te faudra sasn doute
travailler avec l'instruction
CommandBars.ActionControl.Parent.Parent.Index pour remonter de controle en
controle.
A+Deux exemples de création de menus :
--------------------------------------------------------------------------------
Sub testMenu()
'papou, mpfe
Dim monmenu As CommandBarControl, sousmenu1 As CommandBarControl
Dim sousmenu2 As CommandBarControl, sousmenu2_option1, sousmenu2_option2
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set sousmenu1 = monmenu.Controls.Add(msoControlButton, , , , True)
With sousmenu1
.Caption = "&Mise à jour du document"
.OnAction = "Planning"
End With
Set sousmenu2 = monmenu.Controls.Add(msoControlPopup, , , , True)
With sousmenu2
.Caption = "Audit"
Set sousmenu2_option1 = sousmenu2.Controls.Add(msoControlButton, , ,
, True)
With sousmenu2_option1
.Caption = "&Individuel"
.OnAction = "Individuel"
End With
Set sousmenu2_option2 = sousmenu2.Controls.Add(msoControlButton, , ,
, True)
With sousmenu2_option2
.Caption = "&Tous"
.OnAction = "Tous"
End With
End With
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub
----------------------------------------------------------------------------------
'Création d'un menu avec sous menus dans la barre des menus d'Excel
'd'après E. Tissot, mpfe
Sub Creer_Menu()
Dim NewMenu As CommandBarPopup
Dim NewSubMenu As CommandBarPopup
Dim NewButton As CommandBarButton
' menus d'Excel
nomBarre = "Worksheet menu bar"
'ajouter un menu
Set NewMenu = Application.CommandBars(nomBarre).Controls.Add _
(Type:=msoControlPopup)
NewMenu.Caption = "Macros"
'ajouter un sous-menu au menu
Set NewSubMenu = NewMenu.Controls.Add(Type:=msoControlPopup)
NewSubMenu.Caption = "Divers"
'ajouter un bouton au sous-menu
Set NewButton = NewSubMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 1"
.FaceId = 317
.OnAction = "Suppr_SousMenu"
End With
'ajouter un bouton au menu
Set NewButton = NewMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = "Macro 2"
.BeginGroup = True
.FaceId = 316
.OnAction = "Suppr_Menu"
End With
End Sub
Sub Suppr_SousMenu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Controls("Divers").Delete
End Sub
Sub Suppr_Menu()
nomBarre = "Worksheet menu bar"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub
"anonymousA" a écrit dans le message de news:
4220a5aa$0$3136$bonjour,
qu'est ce que tu appelles un menu ?
A+Bonjour à tous,
Après diverses recherches infructueuses sur l'utilisation d'un menu créé
en VBA, je m'adresse au forum.
Après avoir créé en VBA un nouveau menu (pas une barre d'outils) avec
des items principaux dont certains ont des sous-items, je souhaiterais
récupérer dans une variable le n°de l'item sélectionné et le n° de
l'item secondaire.
Je voudrais éviter de créer un .OnAction = "Nom macro" différent pour
chaque item et sous-item
Merci de votre aide
Robert Dezan