[VBA] Fixer ses variables objet à Nothing en fin de code

F22Raptor

XLDnaute Impliqué
Bonjour à tous,
Lorsque je définis une variable objet avec Set MaVar = Workbooks("Toto.xls").Sheets("Titi")

J'essaie désormais de ne pas oublier de libérer la mémoire en fin de code avec un Set MaVar = Nothing

Question que je me pose : quel est l'impact réel de cela ?
Est-ce que ça améliore réellement les choses ?

Et si oui, faudrait-il également faire des Erase MaVarTableau ?
 
Dernière édition:

F22Raptor

XLDnaute Impliqué
Re : [VBA] Fixer ses variables objet à Nothing en fin de code

Merci Staple.
Donc si je comprends bien, il est inutile de fixer la variable objet à Nothing à la fin du code.
Ce serait éventuellement utile en cours de code, pour libérer la mémoire et accélérer le reste du code, dès qu'on n'a plus besoin de cette variable.

J'ai bon ?
 

david84

XLDnaute Barbatruc
Re : [VBA] Fixer ses variables objet à Nothing en fin de code

Bonjour,

Sur le principe tu peux te passer de libérer la variable objet à la fin de la procédure, comme tu peux te passer de déclarer tes variables. Autrement dit tu peux laisser Visual Basic se débrouiller tout seul.

Personnellement je pense que c'est toujours mieux de décider toi-même ce que tu veux faire et non laisser faire.
Donc une programmation "propre" passe par la déclaration des variables et la libération de l'espace mémoire des variables objet.

Autrement dit mieux vaut préciser de libérer l'espace mémoire d'une variable objet que de compter sur Visual Basic pour le faire à ta place : c'est plus clair, plus propre et sans ambiguïté. Cela démontre que tu maîtrises le déroulement de ta procédure en précisant à quelle moment tu instancies ta variable et à quelle moment tu la libères.
Mais ceci n'est que mon avis...

A+

Merci Staple.
Donc si je comprends bien, il est inutile de fixer la variable objet à Nothing à la fin du code.
Ce serait éventuellement utile en cours de code, pour libérer la mémoire et accélérer le reste du code, dès qu'on n'a plus besoin de cette variable.

J'ai bon ?
 

F22Raptor

XLDnaute Impliqué
Re : [VBA] Fixer ses variables objet à Nothing en fin de code

Hello David,
Effectivement, je déclare systématiquement mes var en début de code, en veillant à être le plus parcimonieux possible (byte plutôt que integer, quand ça s'y prête, etc ...), sachant qu'Excel ferait du Variant à chaque coup si on le laissait faire.

Je m'attacherai donc à continuer en fin de code à faire un SET NOTHING des var obj, sachant qu'en théorie ça ne fera rien gagner, mais en pratique, ce sera plus propre.

Je suis pur autodidacte sur VBA, pas du tout informaticien, donc au delà de la technique de code, ce sont des petites règles de propreté qui me manquent parfois :)
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz