Excel VBA / Ruban personnalisé / control dynamic liste des classeurs ouverts

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

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.