Lancer un module de classe depuis une modules

Bonjour à vous.

J'ai un module de classe que je veux activer depuis une macro. La macro lance déjà 3 modules différents.

Voici le code de la macro:

Option Explicit

Sub Lancement()
    Dim result As Integer, rep&

    rep = MsgBox("Voulez-vous vraiment effacer toutes les données du formulaire", vbQuestion + vbYesNo)
    If rep = 7 Then
        Exit Sub
    Else
        Module3.clearCB
        Module4.vider_text
        Module1.vider

    End If
End Sub

et voici le code du module:

Public WithEvents checkB As MSForms.CheckBox
Dim cl() As New ClassCheck
Public f As Worksheet
Function init(feuille)    'classement des controls checkbox
    Dim A&, obj As OLEObject
    For Each obj In feuille.OLEObjects
        If TypeName(obj.Object) = "CheckBox" Then A = A + 1: ReDim Preserve cl(1 To A): Set cl(A).checkB = obj.Object: Set cl(A).f = feuille
    Next
End Function

Private Sub CheckB_Change()
    Dim obj As OLEObject
    If checkB.Value = True Then
        For Each obj In f.OLEObjects
            If TypeName(obj.Object) = "CheckBox" Then

                  If obj.Name <> checkB.Name Then If obj.Object.GroupName = checkB.GroupName Then obj.Object.Value = False
            End If
        Next

    End If
End Sub

Est-ce possible.

Merci de votre support

Bonsoir,

C'est possible comme ceci :

1- module de classe ClassCheck

Public sh As Worksheet
Public WithEvents checkB As MSForms.CheckBox

Private Sub CheckB_Change()
    Dim obj As OLEObject

    If checkB.Value = True Then
        For Each obj In sh.OLEObjects
            If TypeName(obj.Object) = "CheckBox" Then
                  If obj.Name <> checkB.Name Then If obj.Object.GroupName = checkB.GroupName Then obj.Object.Value = False
            End If
        Next obj
    End If

End Sub

2- procédure à insérer dans un module appelé par exemple LoadClass

Dim cases() As New ClassCheck

'// stockage des instances de la classe ClassCheck dans le tableau cases ()
'   et stockage dans chaque instance, du contrôle CheckBox et de la feuille appelante
Sub init(feuille As Object)
    Dim A&, obj As OLEObject

    For Each obj In feuille.OLEObjects
        If TypeName(obj.Object) = "CheckBox" Then A = A + 1: ReDim Preserve cases(1 To A): Set cases(A).checkB = obj.Object: Set cases(A).sh = feuille
    Next

End Sub

3- procédure à insérer dans votre feuille

Sub lancer_ClassCheck()

    init Me

End Sub
Rechercher des sujets similaires à "lancer module classe modules"