OVH Cloud OVH Cloud

Rafraichir CommandBar

1 réponse
Avatar
Serge Hipontoise
Bonjour
J'essaie d'incrémenter un nombre d'opérations effectuées dans un bouton
d'une barre d'outils
genre :

MonNbr = MonNbr + 1

Dim ctl As CommandBarButton
Set ctl = Application.CommandBars(BarNom).Controls(2)
With ctl
.Caption = "En cours : " & MonNbr
End With

Or alors que ce chiffre s'incrémente bien, l'image du bouton ne se
rafraichit pas.
C'est à dire que la nouvelle valeur n'apparait que si je passe ma souris au
dessus du bouton.
Y aurait-il un moyen de "forcer" ce rafraichissement ?
Un grand Merci d'avace
Serge

1 réponse

Avatar
michdenis
Bonjour Serge,

Tu dois utiliser ceci :

BarNom = Nom de ta barre
Controls(1) : 1 = Index de la position du contrôle dans ta barre d'outils

Ta variable "MonNbr" doit être déclaré comme public dans un module standard
Public MonNbr as integer

Pour incrémenter l'affichage, à chaque fois que tu cliques sur ton bouton tu dois
réinitialer la propriété Caption de ton contrôle. Cette action peut être défini à même
la macro que tu as associé à ton bouton. Attention à ne pas déclarer au niveau local
de ta procédure la variable "MonNbr" qui elle soit être au niveau de l'application.

Application.CommandBars("BarNom").Controls(1).Caption = "En cours " & MonNbr


Salutations!




"Serge Hipontoise" a écrit dans le message de news: 431002be$0$2956$
Bonjour
J'essaie d'incrémenter un nombre d'opérations effectuées dans un bouton
d'une barre d'outils
genre :

MonNbr = MonNbr + 1

Dim ctl As CommandBarButton
Set ctl = Application.CommandBars(BarNom).Controls(2)
With ctl
.Caption = "En cours : " & MonNbr
End With

Or alors que ce chiffre s'incrémente bien, l'image du bouton ne se
rafraichit pas.
C'est à dire que la nouvelle valeur n'apparait que si je passe ma souris au
dessus du bouton.
Y aurait-il un moyen de "forcer" ce rafraichissement ?
Un grand Merci d'avace
Serge