Bonjour à tous,

Je suis en train de faire un ruban personnalisé dans excel et j'aimerais reproduire le fonctionnement du groupe de boutons alignement (gauche, centré, droite) : j'aimerais avoir trois ToggleButtons et lorsque je clique sur l'un des trois, cela décoche le ToggleButton précédent surligné (comme on peut le faire avec des OptionsBox), de manière à avoir toujours un unique bouton surligné.

Pour commencer, j'ai créé 2 ToggleButtons ayant pour nom :
Togglebutton1
Togglebutton2

avec pour callbacks :
Sub Togglebutton1_onAction(control As IRibbonControl, pressed As Boolean)
Sub Togglebutton2_onAction(control As IRibbonControl, pressed As Boolean)

J'ai trouvé ce bout de code (à insérer dans un module vba standard) mais je n'arrive pas du tout à le faire fonctionner :
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
41
Public g_rbxUI As IRibbonUI
Public g_blnToggleA As Boolean
Public g_blnToggleB As Boolean
Public Sub Togglebutton1_onAction(control As IRibbonControl, ByRef cancelDefault)
'
' Code for onAction callback. Ribbon control toggleButton
'
    g_blnToggleA = True
    g_blnToggleB = False
    g_rbxUI.InvalidateControl "Togglebutton1"
    g_rbxUI.InvalidateControl "Togglebutton2"
 
End Sub
Public Sub Togglebutton2_onAction(control As IRibbonControl, ByRef cancelDefault)
'
' Code for onAction callback. Ribbon control toggleButton
'
    g_blnToggleA = False
    g_blnToggleB = True
    g_rbxUI.InvalidateControl "Togglebutton1"
    g_rbxUI.InvalidateControl "Togglebutton2"
 
End Sub
 
Public Sub Togglebutton1_getPressed(control As IRibbonControl, ByRef returnedVal)
'
' Code for getPressed callback. Ribbon control toggleButton
'
    If control.ID = "Togglebutton1" Then
        returnedVal = g_blnToggleA
    ElseIf control.ID = "Togglebutton2" Then
        returnedVal = g_blnToggleB
    End If
 
End Sub
Public Sub rbxUI_******(ribbon As IRibbonUI)
'
' Code for ****** callback. Ribbon control customUI
'
    Set g_rbxUI = ribbon
End Sub
Est-ce que vous pourriez me dire :
1) Si ce code répond à mon besoin ?
2) M'expliquer à quoi sert la dernière procédure et comment la faire fonctionner (notamment que mettre à la place de rbxUI_******(ribbon As IRibbonUI))

J'espère avoir été le plus clair possible !

Merci par avance,

Pubbins.