Gestion de menu personnalisé pour 2 classeurs identiques ouverts
3 réponses
COQUITO
Bonjour à tous,
Le sujet pour lequel j'ai besoin d'aide concerne la gestion des menus
personnalisés dans le cas où deux classeurs identiques sont ouverts
simultanément.
J'ai créé un menu personnalisé que j'appelle à partir du Workbook_Open :
Private sub Workbook_Open ()
call Menu_CopieValeurs
End Sub
Dans un module standar, j'ai mis la procédure de création du menu et j'ai
fait en sorte que lorsque les deux classeurs identiques sont ouverts, un
seul menu s'affiche :
Public Sub Menu_CopieValeursCubes()
Dim bMarqueur As Boolean
Dim iNbMenus As Integer
Dim iItem As Integer
Dim menuPrin As CommandBarPopup
Dim menuItem As CommandBarControl
iNbMenus = Application.CommandBars.ActiveMenuBar.Controls.Count
For iItem = 1 To iNbMenus
If
Application.CommandBars.ActiveMenuBar.Controls.Item(iItem).Caption =
"Copie_Valeurs" Then
bMarqueur = True
End If
Next iItem
'CREATION DU MENU PRINCIPAL
If bMarqueur = False Then
Set menuPrin = _
Application.CommandBars("Worksheet Menu
Bar").Controls.Add(Type:= _
msoControlPopup, temporary:=True)
menuPrin.Caption = "Copie_Valeurs"
menuPrin.BeginGroup = True
End If
Cela marche bien.
En revanche, lorsqu'on ferme un seul des deux classeurs, le menu disparaît,
y compris sur le classeur qui reste ouvert.
Comment faire pour que le menu reste sur le classeur ouvert ?
Merci d'avance à tous ceux qui pourraient trouver une solution.
(A mon travail, la version d'Excel est Excel 2003)
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
michdenis
Bonjour,
Fais une gestion de ta barre de menu personnalisé dans chacun des 2 classeurs en utilisant ceci dans chacun des ThisWorkbook de tes 2 classeurs et enlève la procédure "Private sub Workbook_Open"
'------------------------------- Private Sub Workbook_Activate() call Menu_CopieValeurs End Sub '------------------------------- Private Sub Workbook_Deactivate() On error resume next Application.CommandBars.ActiveMenuBar.Controls("Copie_Valeurs").delete End Sub '-------------------------------
"COQUITO" a écrit dans le message de groupe de discussion :
Bonjour à tous,
Le sujet pour lequel j'ai besoin d'aide concerne la gestion des menus personnalisés dans le cas où deux classeurs identiques sont ouverts simultanément.
J'ai créé un menu personnalisé que j'appelle à partir du Workbook_Open :
Private sub Workbook_Open () call Menu_CopieValeurs End Sub
Dans un module standar, j'ai mis la procédure de création du menu et j'ai fait en sorte que lorsque les deux classeurs identiques sont ouverts, un seul menu s'affiche :
Public Sub Menu_CopieValeursCubes() Dim bMarqueur As Boolean Dim iNbMenus As Integer Dim iItem As Integer Dim menuPrin As CommandBarPopup Dim menuItem As CommandBarControl
iNbMenus = Application.CommandBars.ActiveMenuBar.Controls.Count For iItem = 1 To iNbMenus If Application.CommandBars.ActiveMenuBar.Controls.Item(iItem).Caption "Copie_Valeurs" Then bMarqueur = True End If Next iItem
'CREATION DU MENU PRINCIPAL If bMarqueur = False Then Set menuPrin = _ Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:= _ msoControlPopup, temporary:=True) menuPrin.Caption = "Copie_Valeurs" menuPrin.BeginGroup = True End If
Cela marche bien. En revanche, lorsqu'on ferme un seul des deux classeurs, le menu disparaît, y compris sur le classeur qui reste ouvert.
Comment faire pour que le menu reste sur le classeur ouvert ?
Merci d'avance à tous ceux qui pourraient trouver une solution. (A mon travail, la version d'Excel est Excel 2003)
Bonjour,
Fais une gestion de ta barre de menu personnalisé dans
chacun des 2 classeurs en utilisant ceci dans chacun des
ThisWorkbook de tes 2 classeurs et enlève la procédure
"Private sub Workbook_Open"
'-------------------------------
Private Sub Workbook_Activate()
call Menu_CopieValeurs
End Sub
'-------------------------------
Private Sub Workbook_Deactivate()
On error resume next
Application.CommandBars.ActiveMenuBar.Controls("Copie_Valeurs").delete
End Sub
'-------------------------------
"COQUITO" <COQUITO_@wanadoo.fr> a écrit dans le message de groupe de discussion :
34D8111E-B153-4955-A222-4EDBC76902FA@microsoft.com...
Bonjour à tous,
Le sujet pour lequel j'ai besoin d'aide concerne la gestion des menus
personnalisés dans le cas où deux classeurs identiques sont ouverts
simultanément.
J'ai créé un menu personnalisé que j'appelle à partir du Workbook_Open :
Private sub Workbook_Open ()
call Menu_CopieValeurs
End Sub
Dans un module standar, j'ai mis la procédure de création du menu et j'ai
fait en sorte que lorsque les deux classeurs identiques sont ouverts, un
seul menu s'affiche :
Public Sub Menu_CopieValeursCubes()
Dim bMarqueur As Boolean
Dim iNbMenus As Integer
Dim iItem As Integer
Dim menuPrin As CommandBarPopup
Dim menuItem As CommandBarControl
iNbMenus = Application.CommandBars.ActiveMenuBar.Controls.Count
For iItem = 1 To iNbMenus
If
Application.CommandBars.ActiveMenuBar.Controls.Item(iItem).Caption "Copie_Valeurs" Then
bMarqueur = True
End If
Next iItem
'CREATION DU MENU PRINCIPAL
If bMarqueur = False Then
Set menuPrin = _
Application.CommandBars("Worksheet Menu
Bar").Controls.Add(Type:= _
msoControlPopup, temporary:=True)
menuPrin.Caption = "Copie_Valeurs"
menuPrin.BeginGroup = True
End If
Cela marche bien.
En revanche, lorsqu'on ferme un seul des deux classeurs, le menu disparaît,
y compris sur le classeur qui reste ouvert.
Comment faire pour que le menu reste sur le classeur ouvert ?
Merci d'avance à tous ceux qui pourraient trouver une solution.
(A mon travail, la version d'Excel est Excel 2003)
Fais une gestion de ta barre de menu personnalisé dans chacun des 2 classeurs en utilisant ceci dans chacun des ThisWorkbook de tes 2 classeurs et enlève la procédure "Private sub Workbook_Open"
'------------------------------- Private Sub Workbook_Activate() call Menu_CopieValeurs End Sub '------------------------------- Private Sub Workbook_Deactivate() On error resume next Application.CommandBars.ActiveMenuBar.Controls("Copie_Valeurs").delete End Sub '-------------------------------
"COQUITO" a écrit dans le message de groupe de discussion :
Bonjour à tous,
Le sujet pour lequel j'ai besoin d'aide concerne la gestion des menus personnalisés dans le cas où deux classeurs identiques sont ouverts simultanément.
J'ai créé un menu personnalisé que j'appelle à partir du Workbook_Open :
Private sub Workbook_Open () call Menu_CopieValeurs End Sub
Dans un module standar, j'ai mis la procédure de création du menu et j'ai fait en sorte que lorsque les deux classeurs identiques sont ouverts, un seul menu s'affiche :
Public Sub Menu_CopieValeursCubes() Dim bMarqueur As Boolean Dim iNbMenus As Integer Dim iItem As Integer Dim menuPrin As CommandBarPopup Dim menuItem As CommandBarControl
iNbMenus = Application.CommandBars.ActiveMenuBar.Controls.Count For iItem = 1 To iNbMenus If Application.CommandBars.ActiveMenuBar.Controls.Item(iItem).Caption "Copie_Valeurs" Then bMarqueur = True End If Next iItem
'CREATION DU MENU PRINCIPAL If bMarqueur = False Then Set menuPrin = _ Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:= _ msoControlPopup, temporary:=True) menuPrin.Caption = "Copie_Valeurs" menuPrin.BeginGroup = True End If
Cela marche bien. En revanche, lorsqu'on ferme un seul des deux classeurs, le menu disparaît, y compris sur le classeur qui reste ouvert.
Comment faire pour que le menu reste sur le classeur ouvert ?
Merci d'avance à tous ceux qui pourraient trouver une solution. (A mon travail, la version d'Excel est Excel 2003)
michdenis
Pour supprimer le contrôle ajouté, il aurait été préférable que j'utilise ceci :
On Error Resume Next Application.CommandBars("Worksheet Menu Bar").Controls("Copie_Valeurs").Delete
Pour supprimer le contrôle ajouté, il aurait été préférable que
j'utilise ceci :
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("Copie_Valeurs").Delete