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"
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.
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"