Problème avec le Rafraichissement du ruban

plastik6

XLDnaute Nouveau
Bonjour,

Sous Excel 2007, J'utilise un ruban personnalisé via du code XML

Dans un onglet personnalisé, j'ai créé trois bouton sur lequel je veux pouvoir modifier dynamiquement le label a l'aide de la propriété "getLabel"

Code:
<button id="Bt1" getLabel="SubLbl"  />		
<button id="Bt2" getLabel="SubLbl"  />
<button id="Bt3" getLabel="SubLbl"  />

dans VBA j'ai bien créé la fonction callback associé, je passe par la variable publique "label_Temp" pour afficher le texte souhaité
Code:
'Callback for Bti getLabel
Sub SubLbl(control As IRibbonControl, ByRef returnedVal)
      returnedVal = Label_Temp
End Sub

J'ai également créé ma fonction Refreshcontrol qui rafraichit le contrôle souhaité avec un texte particulier
Code:
Sub RefreshControle(Controle As String, Label as string)
     Label_temp = Label
     If Not objRuban Is Nothing Then objRuban.InvalidateControl Controle
end sub

Jusque ici tout va bien, si j'execute le code ci-dessous, j'ai bien mon bouton "Bt1" qui se modifie dans le ruban et qui affiche "toto"
Code:
 Refreshcontrol ( "Bt1", "Toto")

Par contre, si dans la même sub, j'exécute :
Code:
 Refreshcontrol ( "Bt1", "Toto")
 Refreshcontrol ( "Bt2", "Tata")
 Refreshcontrol ( "Bt3", "Tutu")
Je me retrouve a la fin avec "tutu" sur mes 3 boutons!

J'ai l'impression que la fonction invalidatecontrol, ne s'effectue réellement que lorsque le code est terminé et donc à ce moment là, mes 3 boutons sont rafraichit avec la même valeur de la variable label_temp.

Quelqu'un aurait-il une idée pour forcer réellement le rafraichissement du ruban? Ou une autre idée qui me permettrait de résoudre mon problème?
D'avance merci

PS: A terme, je vais avoir beaucoup plus que 3 boutons donc je n'ai vraiment pas envie de créer autant de variable temporaire (ni de fonction callbacks) que de boutons.
 

Fredox

XLDnaute Occasionnel
Bonjour, avec un train de retard (voir plus)

Pour ma part le même problème (quasi):
Selon l'utilisateur, je souhaitais désactiver des boutons de mon ruban fait via Custom UI.
Controle à l'ouverture du document.
VB:
Environ("USERNAME")

J'ai mis un timer avant de lancer ma macro "menu":
Code:
Application.OnTime Now + TimeSerial(0, 0, 1), "Menu"
Ca fonctionne pour moi.

Si ça peu aider.
 

Discussions similaires

Statistiques des forums

Discussions
314 493
Messages
2 110 196
Membres
110 700
dernier inscrit
guiguione