Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme mise jour Ruban XML

1 réponse
Avatar
Pogo
Dans mon un ruban j'utilise une fonction callbak getLabel. J'ai un Select C=
ase qui passe en revue diff=E9rents boutons pour mettre =E0 jour la l=E9gen=
de. Certains boutons ne se mettent pas jour car ils ne sont apparemment pas=
parcouru par le select case. J'ai v=E9rifi=E9 les id de mes boutons, la ca=
sse, l'appel de mes fonctions, ne comprends d'ou cela peut venir. Je joins =
une partie de mon code XML et code VBA associ=E9 :

<group id=3D"grpFA" label=3D"Fiches Anomalies" getVisible=3D"GroupVisible">
<button id=3D"btnCreateFA" label=3D"Cr=E9ation Fiche Anomalie" size=3D"larg=
e" imageMso=3D"AdpDiagramAddTable" onAction=3D"creationFiche"/>
<button id=3D"ListFAComplete" getLabel=3D"maj_label_Counter" size=3D"large"=
imageMso=3D"EditPage" onAction=3D"listeFA_action"/>
<button id=3D"ListFAVisa" getLabel=3D"maj_label_Counter" size=3D"large" ima=
geMso=3D"AcceptTask" onAction=3D"listeFA_action"/>=09
<button id=3D"ListSuiviVisa" getLabel=3D"maj_label_Counter" size=3D"large" =
imageMso=3D"SyncThisfolderMarked" onAction=3D"listeFA_action"/>=09
<button id=3D"ListAction" getLabel=3D"maj_label_Counter" size=3D"large" ima=
geMso=3D"AddRulesMenu" onAction=3D"listeFA_action"/> =09
</group>

les boutons ListSuiviVisa et ListAction ne se mettent =E0 jour

voila le VBA correspondant, qd je teste le control.id, le select case ne pa=
sse par ListSuiviVisa et ListAction

Public Sub maj_label_Counter(control As IRibbonControl, ByRef label)
Dim oRst As Recordset
Select Case control.id
=20
Case "ListAction"
Set oRst =3D CurrentDb.OpenRecordset("select * from Q_CountAction")
label =3D "Actions en cours(" & oRst(0) & ")"
oRst.Close
Case "ListSuiviVisa"
Set oRst =3D CurrentDb.OpenRecordset("select * from Q_CountaSuivre"=
)
label =3D "FA en cours de signature(" & oRst(0) & ")"
oRst.Close
Case "ListFAComplete"
Set oRst =3D CurrentDb.OpenRecordset("select * from Q_CountValid")
label =3D "FA =E0 compl=E9ter(" & oRst(0) & ")"
oRst.Close
Case "ListFAVisa"
Set oRst =3D CurrentDb.OpenRecordset("select * from Q_CountVisa")
label =3D "FA =E0 signer(" & oRst(0) & ")"
oRst.Close

End Select
End Sub

1 réponse

Avatar
Gloops
Pogo a écrit, le 22/03/2013 14:00 :
Dans mon un ruban j'utilise une fonction callbak getLabel. J'ai un Sele ct Case qui passe en revue différents boutons pour mettre à jour la l égende. Certains boutons ne se mettent pas jour car ils ne sont apparem ment pas parcouru par le select case. J'ai vérifié les id de mes bout ons, la casse, l'appel de mes fonctions, ne comprends d'ou cela peut veni r. Je joins une partie de mon code XML et code VBA associé :

<group id="grpFA" label="Fiches Anomalies" getVisible="GroupVisib le">
<button id="btnCreateFA" label="Création Fiche Anomalie" size=" large" imageMso="AdpDiagramAddTable" onAction="creationFiche"/>
<button id="ListFAComplete" getLabel="maj_label_Counter" size="la rge" imageMso="EditPage" onAction="listeFA_action"/>
<button id="ListFAVisa" getLabel="maj_label_Counter" size="large" imageMso="AcceptTask" onAction="listeFA_action"/>
<button id="ListSuiviVisa" getLabel="maj_label_Counter" size="lar ge" imageMso="SyncThisfolderMarked" onAction="listeFA_action"/>
<button id="ListAction" getLabel="maj_label_Counter" size="large" imageMso="AddRulesMenu" onAction="listeFA_action"/>
</group>

les boutons ListSuiviVisa et ListAction ne se mettent à jour

voila le VBA correspondant, qd je teste le control.id, le select case n e passe par ListSuiviVisa et ListAction

Public Sub maj_label_Counter(control As IRibbonControl, ByRef label)
Dim oRst As Recordset
Select Case control.id

Case "ListAction"
Set oRst = CurrentDb.OpenRecordset("select * from Q_CountAct ion")
label = "Actions en cours(" & oRst(0) & ")"
oRst.Close
Case "ListSuiviVisa"
Set oRst = CurrentDb.OpenRecordset("select * from Q_CountaSu ivre")
label = "FA en cours de signature(" & oRst(0) & ")"
oRst.Close
Case "ListFAComplete"
Set oRst = CurrentDb.OpenRecordset("select * from Q_CountVal id")
label = "FA à compléter(" & oRst(0) & ")"
oRst.Close
Case "ListFAVisa"
Set oRst = CurrentDb.OpenRecordset("select * from Q_CountVis a")
label = "FA à signer(" & oRst(0) & ")"
oRst.Close

End Select
End Sub




Bonjour,

Ta question me laisse perplexe, mais les gens qui répondent ici
fréquentent moins assidument qu'à une époque, alors je vais tâche r de
faire ce que je peux.

Pour être franc je réponds de temps en temps ici grâce à une soli de
expérience jusqu'à Access 2007, et beaucoup sur les versions 95 et 97
(entre lesquelles la migration était une question ... intéressante :) ),
la machine où j'avais Access ne répond plus et je n'ai guère travai llé
sur la personnalisation du ruban.

Toutefois il semble que les mécanismes mis en jeu soient un peu les
mêmes que dans une certaine version de Word, où j'ai pas mal joué a vec
les boîtes de dialogues dynamiques.

La documentation doit indiquer quelque part à quel moment cette fonctio n
callback est appelée, et ça devrait permettre de comprendre sous quel les
conditions. Un moyen assez classique est qu'une collection soit
parcourue lors du chargement du ruban, donc il faut chercher comment
cette collection est censée être initialisée, et si/comment elle es t
mise à jour.

Trouves-tu quelque chose là-dessus, est-ce que ça pose des problème s de
compréhension ?

Classiquement, j'imagine que tu as lu une page de doc sur la
programmation de la fonction callback, il faut faire bien attention aux
liens hypertexte qu'elle comporte.