Hi Folks

I've got a custom menu group with a menu holding 3 checkboxes. Now, I'd like to make it act like a drop box, that is if one of the 3 buttons gets pressed the other 2 get unpressed.

So far I've got the following XML code:

<?xml version="1.0" encoding="utf-8"?>


<customUI onLoad="subRibbonOnLoad" xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <ribbon startFromScratch="false" >
            <tabs>
            <tab idMso="TabHome">
                  <group id="Ansicht_Allg" label="Ansicht Allgemein" insertBeforeMso="GroupClipboard" getVisible="subGetVisible" tag="wsAllg">
                <menu id="Menu_wsAllg_Filter" image="Icon_Level" size="large" label="Level" screentip="Level an Detail auswählen">
                    <checkBox id="CheckBox_5_wsAllg" tag="L1" label="Level 1 Komptetenzen" getPressed="subGetPressed" screentip="Level 1 Kompetenzen" onAction="btnMatrixAnsicht" />
                    <checkBox id="CheckBox_6_wsAllg" tag="L2" label="Level 2 Themen"  getPressed="subGetPressed" screentip="Level 2 Themen" onAction="btnMatrixAnsicht" />    
                    <checkBox id="CheckBox_7_wsAllg" tag="L3" label="Level 3 Trainings" getPressed="subGetPressed" screentip="Level 3 Trainings" onAction="btnMatrixAnsicht" />
                </menu>
                </group>
         </tab>

......
And the following VBA callbacks:

'Menüband laden (Callback für customUI.onLoad; wird beim Öffnen der Datei ausgeführt)
Sub subRibbonOnLoad(ribbon As IRibbonUI)


    'Variablen dimensionieren/speichern
    Set rbnRib = ribbon


    If Not ObjPtr(ribbon) = 0 Then
        With wsHelfer
            .Unprotect
            .Range("B3").Value = ObjPtr(ribbon)
            .Protect
        End With
    End If


End Sub


'Menüband aktualisieren/neu zeichnen (Callback für CustomUI.invalidate; wird beim Öffnen/Blattwechsel ausgeführt)
Sub subRefreshRibbon(Tag As String)


    'Variablen dimensionieren/speichern
    strRibbonTag = Tag
    
    If rbnRib Is Nothing Then
        If Not CStr(wsHelfer.Range("B3")) = "" Then
            Set rbnRib = fctgetribbon(wsHelfer.Range("B3").Value)
            rbnRib.Invalidate
        End If
    Else
        rbnRib.Invalidate
    End If


End Sub


'Pointer für zu ladendes Menüband ermitteln (i.e Speicherort des Menübandstatuses im Arbeitsspeicher)
Function fctgetribbon(ByVal rbnPointer As LongPtr) As IRibbonUI


    CopyMemory rbnRib, rbnPointer, LenB(rbnPointer)
    Set fctgetribbon = rbnRib


End Function


'Menüband wechseln (Callback für CustomUI.subGetVisible; wird beim Blattwechsel ausgeführt)
Sub subGetVisible(control As IRibbonControl, ByRef visible)


    If control.Tag = strRibbonTag Then
        visible = True
    Else
        visible = False
    End If


End Sub


Sub subGetPressed(control As IRibbonControl, ByRef pressed)


End Sub


'Button onAction (Callback für CustomUI.onAction; wird beim Drücken eines Buttons ausgeführt)
Sub btnMatrixAnsicht(control As IRibbonControl, pressed As Boolean)


    Dim wsAktivesBlatt As Worksheet: Set wsAktivesBlatt = ThisWorkbook.ActiveSheet
    Dim strButtonTyp As String
    Dim strButtonIndex As String
    Dim strAnsichtlevel As String
    Dim blnButtonGedrückt As Boolean
    
    If control.Tag Like "L*" Then
        strButtonTyp = "Level"
        strAnsichtlevel = Right(control.Tag, 1)
    Else
        strButtonTyp = "Kompetenzen"
        strAnsichtlevel = control.Tag
    End If
    If pressed = True Then
        blnButtonGedrückt = True
    Else
        blnButtonGedrückt = False
    End If
    strButtonIndex = Mid(control.ID, InStr(1, control.ID, "_") + 1, 1)
    
    subMatrixAnsicht wsAktivesBlatt, strButtonTyp, strButtonIndex, strAnsichtlevel, blnButtonGedrückt
    
End Sub
I've tried with getPressed, however, the corresponding subGetPressed doesn't get called when pressing any of the 3 buttons.
Any ideas how this can be done?