Faut-il libérer les variables?

Luki

XLDnaute Accro
Bonjour le forum,

me revoilà après une longue journée d'absence... et quel agréable surprise de ne pas avoir à m'identifier, je suis déjà reconnu! C'est nouveau de ne pas avoir à le faire chaque jour ou c'est une erreur?

Bref, ma question du jour porte sur les variables.



Est-ce indispensable de les libérer, ne sont elles pas automatiquement libérées à la fin de l'exécution du code?

A savoir que par flemme, j'ai déclaré une majorité de variables récurentes publiques dans mon projet. Mais cela semble poser problème dans le cas où je fait des boucles multiples sur des feuilles et des plages.

J'ai l'impression que ça peut venir du fait que je n'ai pas libéré les variables.

J'aimerais bien avoir quelques précisions à ce sujet ça m'aiderait pour résoudre mon Pb.

Merci à tous et A+
 
M

MrExcel

Guest
Salut Luki,

(j'dis bonjour à _Thierry par avance, j'suis sur qu'il va venir rôder sur ce fil ;))

C'est pas bien la flemme et ça peux causer des soucis. Déclarer ses variables public risque de générer des problèmes de conflit de variables genre j'ai besoin de la variable à un instant t mais elle a été initialisée un peu avant avec une donnée dont j'ai besoin plus tard, etc...
Le bon conseil pour les variables public c'est d'en abuser le moins possible.

Pour répondre à ta question:
Non il n'est pas besoin de libérer les variables. Quand le programme s'arrête (XL/classeur) elles sont effacées de la mémoire. Cependant, pour les variables dites objet il est préférables de les libérer pour éviter les 'oublis' d'effacement de la mémoire.
Donc si tu Set une variable, il vaux mieux la mettre à nothing quand tu en as fini avec elle.
Pareille avec les accès aux BDD genre access: ne pas oublier de fermer l'accès ouvert...

Enfin, il existe des astuces pour conserver des variables: tu les mets dans des cellules d'une feuille cachée par exemple, ou encore tu les écrits dans un fichier temporaire...

Autre chose: utilise le débogueur, le déroulement pas à pas du programme, les espions (en l'occurence pour tes variables public)...ces outils sont vitaux pour tout bon développeur, et il faut absolument les utiliser !

Autre chose bis: Jette un coup d'oeil à ByVal/ByRef dans l'aide de VBA...ça peut éventuellement servir ;)

HTH
 

Luki

XLDnaute Accro
Re MrExcel,

Eh oui, je me doutais bien que la flemme me poserait des problèmes!

Donc je vais remanier et corriger tout ça!

concernant les variables stockées dans ds cellules de feuilles cachées, je l'utilise déjà, notamment pour garder des paramètre spécifiques à la feuille affichée ( Commandbar par ex).

J'utilise aussi les noms cachés de la feuille pour stocker des valeurs, ils ont l'avantage de diparaître avec la feuille si elle est supprimée.

Concernant le déboqueur, j'utilise la fenêtre variable locale mais je ne sais pas utiliser les espions. A quoi servent -ils?

Merci

( je vais déjeuner, à +) et bonjour à _Thierry!
 

Jam

XLDnaute Accro
Salut Luki,

Les espions ça sert à surveiler une variable particulière et son contenu. Tu peux demander au progr de s'arrêter si la valeur de la variable change ou en fonction du contexte.
Bref, c'est super utile.

Pour créer un espion c'est très simple. Tu sélectionnes ta variable, un clic droit et tu choisis Ajouter un espion. Dans la fenêtre qui s'affiche tu affines le contexte qui t'intéresse de suivre.

Bon ap'
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Luki, HTH, le Forum

Tiens on me dit bonjour d'avance, et bien c'est super gentil !!!

Rien de spécial à ajouter mais y a pas bon de faire des Variable Public par Faignantise en tout cas !!!

Sinon long complément d'info sur ce Fil :

=> Lien supprimé

Bon App, je file
@+Thierry
 

Statistiques des forums

Discussions
314 450
Messages
2 109 730
Membres
110 553
dernier inscrit
loic55