Bonjour à tous,

Afin de remplir un userform, J'ai créé un modules de classe, qu'on appellera A.
Aussi, j'ai défini un événement "Change" sur cette classe A.
J'ai donc déclaré mon événement dans le module de classe A en écrivant en haut de la page :

Puis :

aux bons endroits, toujours dans mon module de classe A.
Ensuite j'ai créé une instance de classe A dans mon userform :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Private WithEvents Avariable As A
Finalement, j'ai initialisé ma variable dans mon userform en écrivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private Sub UserForm_Initialize()
    Set Avariable = New A
End Sub
Jusque là, aucun souci, tout fonctionne parfaitement.

Maintenant, j'introduis une second classe, qu'on appellera B, ayant une propriété de classe A.
J'aimerais que l’événement "Change" décrit plus haut soit détectable d'une façon ou d'une autre depuis une instance de classe B de mon Userform.
Et là ça se complique cas je ne sais plus où écrire les instructions précédentes.

J'ai essayé en introduisant dans ma classe B un nouvel événement Change2 propre à ma propriété de classe A se déclenchant dès que l’événement "Change" se déclenche.
J'ai donc écrit cette ligne en haut de mon module de classe B :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Public WithEvents Aproriete As A
Puis j'ai explicité mon nouvel événement, toujours dans mon module de classe B.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Private Sub Aproriete_Change()
 
       RaiseEvent Change2
 
End Sub
Mais du coup je ne sais pas où initialiser ma propriété. Si je ne l'initialise pas avec une instruction New, j'ai un message d'erreur.
Vous auriez une idée ?

J'espère que je ne vous ai pas perdu

Merci d'avance !