bonjour,
enabled = False signifie que le contrôle n'est pas disponible.
Tu n'as pas la possibilité de modifier sa propriété Pressed par l'éditeur.
Par contre cette propriété est modifiable par VBA.
Tu vas éditer ton ribbon et mettre ;
<group id="Groupe1" label="VALIDE">
<checkBox id="VALIDE1" label="Option1" getPressed="Ribbon_GetPressed" getEnabled="Ribbon_GetEnabled"/>
</group>
Ensuite dans VBA dans le module approprié tu mettra les macros de Callback suivantes :
'Callback for VALIDE1 getPressed
Sub Ribbon_GetPressed(control As IRibbonControl, ByRef returnedVal)
returnedVal = True
End Sub
'Callback for VALIDE1 getEnabled
Sub Ribbon_GetEnabled(control As IRibbonControl, ByRef returnedVal)
returnedVal = False
End Sub
Quand tu ouvriras ton classeur ton ribbon ira lire la maco getPressed et cochera ton CheckBox.
Ton ribbon ira également lire la macro getEnabled et grisera alors le contrôle qui sera alors figé jusqu'a la prochaine relecture.
Nota : Pour l'exemple j'ai affecté les valeurs True et False "en dur."
Il va de soi que tu peux les remplacer par des variables Booléennes que tu initialiseras à l'ouverture du classeur par exemple.
Par exemple tu pourrais affecter la valeur "True" à une Variable YEnab tant que la variable YPress est False et vice bersa...
Bien sur il faudra aussi prévoir dans une une procédure quelconque une instruction :
Ribbon.Invalidate
qui assurera une mise à jour du ribbon en temps que de besoin.
EDIT : Bonsoir André
A+