Fermeture d'une classe contenue dans une collection

lepico27 Messages postés 15 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 2 avril 2012 - 29 sept. 2010 à 14:51
lepico27 Messages postés 15 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 2 avril 2012 - 29 sept. 2010 à 19:14
Bonjour,

J'ai créé un Add-in qui me permet d'automatiser la saisie de données dans plusieurs de mes feuilles excel.
Cet add-in se compose principalement d'un module de classe dans lequel je renseigne la feuille excel à laquelle je veux appliquer mes macros.
Les différentes feuilles sont donc stockées dans une classe, au sein de laquelle se trouve un objet worksheet et la procédure worksheet_change actionnant mes différentes macros. J'ai ensuite une collection qui répertorie plusieurs instances de ma classe (une pour chacunes des feuilles sur lesquelles je veux travailler).
Mon problème c'est que lorsque j'applique aux éléments de ma collection:
set mycollection("feuilleX")=nothing
La classe ne se termine pas et la modification de la feuille continue de lancer worksheet_change.

Pour résumer, ma question plus simplement: comment faire pour terminer une classe quand celle-ci est un item d'une collection.

Merci d'avance pour votre aide

Lepico



mon code:

dans mon module de classe (nommé clsMyWS):
 Public myWS as worksheet

private sub myWS_change()
...
end sub


et dansle module de base:
public mesFeuilles as new collection

public sub ajouterFeuille()
dim temp as new clsMyWS
set temp=new clsMyWS
mesFeuilles.add temp, "nom de ma feuille"
end sub

Public sub supprimerFeuille()
set mesFeuilles("nom de ma feuille")=nothing   'ne marche pas!!
mesFeuilles.remove "nom de ma feuille"
end sub

2 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
29 sept. 2010 à 17:43
Salut,

y a un truc qui cloche dans ce que tu nous donne !!! ou alors je suis pas reveillé

comment l'evenement change de ta classe est il... comment dire... associé à cette classe ?

Public myWS as worksheet ne peut en aucun cas associer la classe d'evenements de feuille à ta classe !

pour que cela fonctionne il aurait fallut que tu écrives:

Public Withevents myWS as worksheet


Enfin il me semble

De plus même si je ne suis jamais passé par une collection perso, je ne crois pas que la methode pour remplir ta collection soit la bonne...

Mais bon ce que j'en dit...

A+
0
lepico27 Messages postés 15 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 2 avril 2012
29 sept. 2010 à 19:14
bigfish_le vrai, déjà merci de t'intéresser à mon problème.
Autant pour moi, j'ai voulu simplifier le code pour poser ma question, le withevents figure bien entendu dans mon code de base.
Par contre, si tu connais un moyen pour créer ma collection autrement qu'en utilisant la méthode ci dessus, je suis plus que preneur.
Sinon, j'ai toujours le même problème.

Merci d'avance pour vos réponses
0
Rejoignez-nous