Vider toutes les variables à la fin d'une macro

jeromegmc

XLDnaute Occasionnel
Salut à tous,


Est-il possible de vider (la mémoire utilisée pour) toutes les variables utilisées dans une macro et cela sans nommer chaque variable?


A+
 

Ti_

Nous a quitté
Repose en paix
si tes variables sont déclarées à l'intérieur de ta macro (ce qui est une bonne habitude), alors dès que tu quittes cette macro, elles cesseront d'exister, les Set ... = Nothing et autres sont donc inutiles dans ce cas.
Maintenant si tu veux purger des variables déclarées au niveau du module, alors il faudra en passer par un nettoyage 'manuel' (Set ... = Nothing et autres).

Il existe une autre alternative. Supposons qu'à l'appui sur un bouton une macro s'active et que, à l'issue de celle-ci tu ne veux garder aucune trace de son passage, alors tu peux la faire se terminer par un 'End' mais c'est une solution radicale qui réinitialisera absolument toutes les variables de ton programme (mais heureusement pas des autres programmes).

Personnellement je n'utilise jamais cette instruction parce que si tu changes d'idée dans 6 mois mais que tu as oublié la présence de ce (tout petit) End, tu risqueras de chercher un petit bout de temps pourquoi tes variables ne contiennent plus rien, ou que plus rien ne veut plus se passer à la sortie de ta macro. Mais bon, rien n'interdit non plus de l'utiliser si tu sais ce que tu fais...

Message édité par: Ti_, à: 12/12/2005 17:04
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Ti, Jérome, le Forum

Oui 'End' est redoutablement efficace, je l'utilise avec parcimonie dans certaines applications qui contiennent des Variables Publiques que je dois parfois ré-initialiser.

Mais c'est clair qu'il vaut mieux en répertorier l'usage à des fins d'évolution du programme... Car même dans VBE un [CTRL + F / Current Project] ne te permettra pas de les retrouver aussi facilement que ça au milieu d'une multitude de Modules et UserForms plein de 'End Sub' ou de 'End Function' ou de 'End Select' sans oublier les 'End With', et autres 'End Type', 'End Property'...Et bien sûr le plus courant 'End If' (L'astuce consistant à chercher deux ou trois espaces à la suite du 'End ' ne fonctionnera pas)

Mon astuce perso toujours 'emboiter' End avec un commentaire :

End 'TERMITATE or RIP !!! LOL


Et pour tout le reste 'tout à fait Thierry' ;-)

Bonne Fin de Journée
[ol]@+Thierry[/ol]
 

Discussions similaires

Réponses
9
Affichages
544

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet