Bonjour,
J’essaie de créer un contrôle de ruban dynamique affichant la liste des classeurs ouverts. Pour cela je me suis inspiré du code permettant d’afficher la liste des feuilles d’un classeur, qui fonctionne. Cependant, après plusieurs tentatives, mon contrôle s’ouvre sur une liste qui reste vide.
'=======
Xml Code.
<dynamicMenu id=« ListeDynamiqueWb »
label=« Liste Classeurs »
getContent=« CreationMenuDynamiqueWb »
invalidateContentOnDrop=« true »
size=« normal »
imageMso=« ChartShowData »/>
"==========
Vba Code
Option Explicit
'Callback for ListeDynamique getContent
'Procédure pour construire le menu dynamique
Public Sub CreationMenuDynamiqueWB(ctl As IRibbonControl, ByRef content)
'ouverture de la balise menu
content = « <menu xmlns= »« http://schemas.microsoft.com/office/2006/01/customui »« > »
'liste les classeurs ouverts
content = content & Liste_WB(ActiveWorkbook)
'fermeture de la balise
content = content & « »
End Sub
Private Function Liste_WB(wb As Workbook) As String
Dim strTemp As String
'Dim wb As Workbook
’ Insertion d’un titre de menu
strTemp = « <menuSeparator id= »« Classeurs »" title=« « Classeurs » »/>"
’ ajoute un bouton dans le menu pour chaque feuille du classeur
For Each wb In Application.Workbooks
strTemp = strTemp & _
"<button " & _
CreationAttribut(« id », « Bt » & wb.Name) & " " & _
CreationAttribut(« label », wb.Name) & " " & _
CreationAttribut(« tag », wb.Name) & " " & _
CreationAttribut(« onAction », « ActivationWB ») & « /> »
Next
Liste_WB = strTemp
End Function
Sub activateWB(control As IRibbonControl)
wb(control.Tag).activate
End Sub
=====
Je serais très reconnaissant à celui qui pourrait m’aider à comprendre ce qui ne fonctionne pas dans ce code.
Merci d’avance
PH MUNIESA