Bonjour à tous par ce matin radieux,
mon problème concerne la vérification de la présence ou non d'un menu personnalisé.
J'ai créé à l'ouverture d'un classeur, un menu personnalisé de ce type :
Sub creer_menu_travaux()
Dim TransMenu As CommandBarPopup
On Error Resume Next
With Application.CommandBars(1)
Set TransMenu = .Controls.Add _
(Type:=msoControlPopup, before:=.Controls.Count + 1)
End With
TransMenu.Caption = "Travaux"
'Creation des sous-menus
With TransMenu.Controls.Add(msoControlButton)
.Caption = "Je suis perdu- aidez moi! - aide"
.FaceId = 1004
.OnAction = "Voir_aide"
etc....
ca marche nickel avec des petites faceid personnalisées c'est très sympa...
Afin de permettre a l'utilisateur de retrouver ses menus d'origine à la fermeture du classeur, j'ai glissé dans la fermeture du workbook ceci :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
retablir_titre
ActiveMenuBar.Reset
end sub
Mon souci est le suivant :
lorsque j'ouvre et que je referme ce classeur , tout fonctionne à merveille.
Par contre, lorsque j'ouvre deux classeurs identiques ou plus contenant ces macros alors deux menus personnalisés "Travaux" se créent ...c'est pas beau mais c'est normal . Par contre, si je ferme l'un des deux classeurs ouverts et bien le menu disparait sur le classeur restant. c'est a nouveau logique puisque ActiveMenuBar.Reset fait son boulot.
Comment faire pour vérifier l'existence d'un menu personnalisé et ne pas recréé le dit menu ? et comment faire pour empecher de tout réinitialiser à la fermeture de l'un des classeurs ?
avez vous une idée ?
merci d'avance
Olivier