Bonjour à toute la communauté,
Ayant consulté de nombreux articles à ce sujet, chargé plusieurs exemples, testé plusieurs codes, je ne trouve pas solution à mon pb.
Je souhaite, dans un ruban personnalisé, modifier dynamiquement l'image du bouton selon l'action d'autres boutons.
Ces boutons sont intégrés dans le customUI, et sont nommés 'Bouton_radio_Off_32x32' et 'Bouton_radio_On_32x32'.
Le problème se situe dans un groupe nommé 'Alternance', dans lequel je souhaite gérer trois boutons radios, afin de choisir une seule des trois options, 'Sans', 'Paire' ou 'Impaire'.
Le code s'exécute correctement au chargement du ruban, mais les boutons radio ne s'affichent pas en regard du label de l'item.
Par contre, si je remplace le nom de mes boutons par le nom d'une imageMSO, l'affichage de cette image s'effectue correctement !
Je pense que mon problème doit se situer dans la syntaxe d'appel à mon image perso.
Voici un extrait du code xml correspondant à la section du groupe :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <!-- Alternance --> <group id="gpAlternance" label="Alternance"> <box id="bxAlternance" boxStyle="vertical"> <toggleButton id="btSans" label="Sans" onAction="Sans" getImage="GetImage"/> <toggleButton id="btPaire" label="Paire" onAction="Paire" getImage="GetImage"/> <toggleButton id="btImpaire" label="Impaire" onAction="Impaire" getImage="GetImage"/> </box> </group>
Voici le code vba associé à la gestion :
Le but est évidemment de reproduire le comportement de boutons radios activeX, lorsqu'un bouton du groupe est validé, les autres sont dévalidés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Dim myRibbon As IRibbonUI Dim intAlternanceEtat As Integer Sub RibbonLoaded(ribbon As IRibbonUI) Set myRibbon = ribbon End Sub 'Callback for customUI.onLoad Sub RibbonOnLoad(ribbon As IRibbonUI) intAlternanceEtat = 1 End Sub Sub GetImage(control As IRibbonControl, ByRef image) Select Case control.id Case "btSans" Select Case intAlternanceEtat Case 1: image = "Bouton_radio_On_32x32" Case 2: image = "Bouton_radio_Off_32x32" Case 3: image = "Bouton_radio_Off_32x32" End Select Case "btPaire" Select Case intAlternanceEtat Case 1: image = "Bouton_radio_Off_32x32" Case 2: image = "Bouton_radio_On_32x32" Case 3: image = "Bouton_radio_Off_32x32" End Select Case "btImpaire" Select Case intAlternanceEtat Case 1: image = "Bouton_radio_Off_32x32" Case 2: image = "Bouton_radio_Off_32x32" Case 3: image = "Bouton_radio_On_32x32" End Select End Select End Sub
Auriez-vous une idée à la résolution de mon problème ?
Merci.
Partager