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" >
            <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" />

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
            .Range("B3").Value = ObjPtr(ribbon)
        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)
        End If
    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
        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)
        strButtonTyp = "Kompetenzen"
        strAnsichtlevel = control.Tag
    End If
    If pressed = True Then
        blnButtonGedrückt = True
        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?