Modulo di classe per checkboxes in un sheet (non activeX)

di il
0 risposte

Modulo di classe per checkboxes in un sheet (non activeX)

Buongiorno.

Ho un problema che credo sia dovuto qualche stupido errore.

Spiego. In un foglio ho creato 10 controlli checkBox non activeX. Vorrei raggrupparli con un modulo di classe e gestire il cambio di stato con opportune operazioni (gestite a livello di modulo di classe).

Il numero dei controlli visibili può variare (da 0 a 10).

Quello che ho provato è quanto segue:

'--> Modulo di classe 'chkClass'
Option Explicit

Public WithEvents ChkBoxGroup As MSForms.CheckBox

Private Sub ChkBoxGroup_Change()
    Debug.Print "ChkBoxGroup_Change"
End Sub

Private Sub ChkBoxGroup_Click()
    Debug.Print "ChkBoxGroup_Click"; vbTab;
    Debug.Print ChkBoxGroup.Caption; vbTab; ChkBoxGroup.Value
End Sub

Al contempo nel modulo “modulo1” ho inserito la seguente routine:

Option Base 1
Option Explicit
Dim CheckBoxes() As New ChkClass
Dim ButtonCount As Integer

Sub attivaCheckBoxes() 

    Dim sht As Worksheet
    Set sht = Sheets("Riassuntivo")

    ReDim CheckBoxes(1 To 1)
    ButtonCount = 0
    For Each ctr In Me.Controls
        If TypeName(ctr) = "checkbox" Then
            If InStr(1, ctr.Name, "ck_") > 0 Then 'Solo pulsanti
                ButtonCount = ButtonCount + 1
                ReDim Preserve CheckBoxes(1 To ButtonCount)
               Set CheckBoxes(ButtonCount).ChkBoxGroup = ctr
            End If
        End If
    Next ctr
End Sub

infine, dopo aver nascosto o reso visibili le checkboxes che mi occorrono, nel modulo del foglio interessato richiamo la routine:

Call attivaCheckBoxes

Ora, l'errore che viene segnalato è “tipo segnalato dall'utente non definito”, e riguarda l'a dichiarazione WithEvents del modulo di classe.

Perché?

Devi accedere o registrarti per scrivere nel forum
0 risposte