Bonjour,
Je cherche une information au niveau des classes en VBA excel.
Mon cas :
Je crée un module de classe simple (contenant uniquement un constructeur et un destructeur) qui se nomme CBook:
Je crée dans un module une variable globale de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ' Module de classe "CBook" ' Constructeur Private Sub class_initialize() End Sub ' Destructeur Private Sub class_terminate() End Sub
J'initialise à l'ouverture du classeur et je détruit à la fermeture du classeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public book = new CBook
Est-ce une pratique correcte sur vba excel ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Workbook_Open() Set book = Nothing Set book = New CBook End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Set book = Nothing End Sub
Si c'est correct, j'ai un problème car en cours d'utilisation d'excel l'objet "book" se perd tout seul en cours de route sans appeler son destructeur (j'ai mis un msgbox dans le destructeur pour être sur) et provoque une erreur.
Qu'est-ce qui fait (quel événement peut se produire pour) qu'un objet contenant une classe de détruise tout seul sans appeler le destructeur ?
Merci par avance pour votre aide
Romain
Partager