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é?