Bonjour a tous,
j'ai un problème auquel je ne trouve malheuresuement pas de solution intuitive. Je défini un module de classe User :
dans un module du workbook je déclare un objet comme étant publique tq :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 ' Module de classe User public SurName as String public FirstName as String Public UserName as String private PassWord as String public AccessRight as long public sub GetUser() ... private sub class_Initialize() msgbox("Un user vient d'être instancié") end sub private sub class_Terminate() msgbox("Le User "& SurName &", "& FirstName &" vient d'être détruit") end sub ' etc.. 'End class définition
une routine qui exploite l'objet User :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'Module public public Moi as User
une fois le code exécuté, l'objet est toujours en mémoire d'excel (l'événement terminate de ma classe n'a pas été activé), le pointeur 'Moi' est aussi encore en mémoire. Je peux donc y réaccéder en relançant une routine ainsi de suite, autant de fois que je veux dans la vie de mon application excel courante. Cependant, phénomène très étrange, lorsque dans l'éditeur VB, je click sur le bouton stop du debugger, le pointeur publique 'Moi' qui était en mémoire auparavant, disparait. L'événement Terminate de mon objet n'étant même pas exécuté (ce qui prouve que mon objet 'Moi' existe bien en mémoire, mais que tous les pointeurs vers cet objet ont disparu.) Mon intérêt ici, est de pouvoir maintenir un pointeur vers cet objet, en vie tant que l'application est ouverte. (J'ai éventuellement pensé a rattacher mon pointeur à l'objet application d'excel, mais comment faire ? Je ne crois pas que je puisse enrichir le modèle objet d'excel.. )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 set Moi = new User ' ...
Quelqu'un aurait-il une solution je vous prie, ca fait deux jours que je me prends la tête dessus sans solution.
Merci d'avance,
Partager