Actualisation d'une liste dynamique dans un ruban personnel Excel

boniteprobtp

XLDnaute Nouveau
Mon code XML
Code:
ActivationFeuille"/>
		<button id="BUT31" 	
			label="Renseignement des numéros de téléphone suite à contact téléphonique (si Adhérent)" 
			onAction="ActivationFeuille"/>
		<button id="BUT32" 
			label="Enrichissement des mails" 
			onAction="ActivationFeuille"/>
		<menuSeparator id="RB33" 	
			title="CONCERTATION - J'écoute et je raconte l'histoire de la relation"/>
		<button id="BUT33" 
			label="Détection des INA COURRIER (logistique + poste)" 
			onAction="ActivationFeuille"/>
		<button id="BUT34" 
			label="Détection des INA au téléphone" 
			onAction="ActivationFeuille"/>
		<button id="BUT35" 
			label="Détection des INA par le réseau" 
			onAction="ActivationFeuille"/>
		<button id="BUT36" 
			label="Saisie d'un commentaire lors de la détection des INA au téléphone" 
			onAction="ActivationFeuille"/>
		<button id="BUT37" 
			label="Saisie d'un commentaire lors des contacts téléphoniques" 
			onAction="ActivationFeuille"/>
		<button id="BUT38" 
			label="Saisie d'un commentaire à chaque action menée et lors du traitement des encours (Tous suivis et INA)" 
			onAction="ActivationFeuille"/>
		<menuSeparator id="RB39" 
			title="CONCERTATION - Je communique avec l'adhérent avec le média le plus approprié"/>
		<button id="BUT39" 
			label="Appels non décrochés (RONA)" 
			onAction="ActivationFeuille"/>
		<button id="BUT40" 
			label="Réalisation d'appels sortants lors du traitement de la demande de l'adhérent (hors INA) par ETP" 
			onAction="ActivationFeuille"/>
		<button id="BUT41" 
			label="Pourcentage d'appels sortants réalisés lors du traitement de GED/MAIL/AIDE de l'adhérent(hors INA)" 
			onAction="ActivationFeuille"/>
		<button id="BUT42" 
			label="Pourcentage  de mail envoyés lors du traitement de la demande de l'adhérent" 
			onAction="ActivationFeuille"/>
		<button id="BUT43" 
			label="Envoi de mail lors du traitement de la demande de l'adhérent par ETP" 
			onAction="ActivationFeuille"/>
		<menuSeparator id="RB44" 
			title="CONCERTATION - Je respecte mes engagements"/>
		<button id="BUT44" 
			label="Encours SUIVI GED traités à échéance avec commentaire si report" 
			onAction="ActivationFeuille"/>
	</menu>
	</group>

	<group id="Menu" label="boite Menu">
		<dynamicMenu id="ListeDynamique"   
			label="Liste Items"   
			getContent="creationMenuDynamique"   
			invalidateContentOnDrop="true"   
			size="normal"   
			image="Jumelle" />
	</group>

</tab>
</tabs>
</ribbon>
</customUI>

Mon code VBA :

Code:
Sub CreationMenuDynamique(ctrl As IRibbonControl, ByRef content)

'Sub CreationMenuDynamique(control As IRibbonControl)
    
    Dim lig As Integer, nb As Integer, top As Integer
    Dim i As Integer
    Dim chapitre As String
    Dim rubrique As String
    Dim Item As String
    Dim contenu As String
    
    'ouverture de la balise menu
    'contenu = "<menu xmlns=""http://schemas.microsoft.com/office/2006/01/customui"">"
    contenu = "<menu "
    contenu = contenu & CreationAttribut("xmlns", "http://schemas.microsoft.com/office/2006/01/customui"
    contenu = contenu & " >"
    'contenu = "<menu "
    'contenu = contenu & CreationAttribut("id", "Menu") & " "
    'contenu = contenu & CreationAttribut("itemSize", "normal")
    'contenu = contenu & " >"

    feuille = ActiveSheet.Name
    Dim indFeu As Integer
    indFeu = controlerFeuille(feuille)
    If indFeu = 0 Then Exit Sub
    i = Sheets("ParamExecution").Cells(1, 4).Value
    nb = i + Sheets("ParamExecution").Cells(indFeu, 4).Value
    top = Sheets("ParamExecution").Cells(indFeu, 8).Value
    For i = i To nb
        If LCase(Sheets("ParamExecution").Cells(i, top)) = "oui" Then
            rubrique = Sheets("ParamExecution").Cells(i, 1).Value + " - "
            rubrique = rubrique + Sheets("ParamExecution").Cells(i, 2).Value
            If Not chapitre = rubrique Then
                chapitre = rubrique
                contenu = contenu + creerChapitre(chapitre, i)
                Item = ""
            End If
            If Not Item = Sheets("ParamExecution").Cells(i, 3).Value Then
                Item = Sheets("ParamExecution").Cells(i, 3).Value
                contenu = contenu + creerItem(Item, i)
            End If
        End If
    Next i
    'fermeture de la balise
    contenu = contenu & "</menu>"
End Sub
Private Function creerChapitre(chapitre As String, i As Integer) As String
    Dim strTemp As String
    ' Insertion d'un chapitre de menu
    strTemp = "<menuSeparator "
    strTemp = strTemp & CreationAttribut("id", "CHP" & CStr(i))
    strTemp = strTemp & " "
    strTemp = strTemp & CreationAttribut("title", chapitre)
    strTemp = strTemp & "/>"
    creerChapitre = strTemp
End Function
Private Function creerItem(Item As String, i As Integer) As String
    Dim strTemp As String
    ' Insertion d'un item selectionnable
    strTemp = ""
    strTemp = strTemp & "<button "
    strTemp = strTemp & CreationAttribut("id", "BUT" & CStr(i))
    strTemp = strTemp & " "
    strTemp = strTemp & CreationAttribut("label", Item)
    strTemp = strTemp & " "
    strTemp = strTemp & CreationAttribut("tag", Item)
    strTemp = strTemp & " "
    strTemp = strTemp & CreationAttribut("onAction", "ActivationFeuille")
    strTemp = strTemp & "/>"
    creerItem = strTemp
End Function
' Création des attributs
Function CreationAttribut(strAttribut As String, Donnee As String) As String
    CreationAttribut = strAttribut & "=" & Chr(34) & Donnee & Chr(34)
End Function

Je souhaiterai que la liste dynamique soit la même que la liste statique afin de ne plus avoir cette dernière car la liste peut évoluer avec le temps et je ne voudrai pas avoir à remodifier le XML à chaque nouvel item et/ou couple chapitre/rubrique.

Merci pour toute aide
 
Dernière édition:

Statistiques des forums

Discussions
312 339
Messages
2 087 414
Membres
103 542
dernier inscrit
feenix