J'ai un classeur A
(A.xlsm) qui fait référence au classeur B
(B.xlsm) via le menu Tools -> References
dans l'éditeur VBA. A
utilise plusieurs macros dans B
. Si je ferme A
alors B
reste ouvert et toutes les variables conservent leur état actuel. Par conséquent si j'ouvre à nouveau A
, quelques macros dans B
donneront des erreurs parce qu'elles ont l'état des incantations précédentes qui n'est plus compatible avec A
.Comment réinitialiser les variables de classeur référencées
Y a-t-il un moyen de réinitialiser B
pour que toutes les variables soient maintenant dans leur état d'origine? Vous pouvez également fermer B
une fois que A
est fermé?
Vous avez raison, vous n'avez normalement pas besoin de fermer/réinitialiser les variables avec VBA, parce que la portée des variables VBA est normalement plutôt faible: les variables (normalement) vivent et meurent avec la procédure ou la fonction dans laquelle elles sont utilisées/créées: https://www.ozgrid.com/VBA/variable- scope-lifetime.htm Mais si vous créez des variables avec une portée plus large, vous devriez être prêt à les relâcher/réinitialiser avec des lignes de code comme 'Set ws1 = Nothing' ou' strVariable = vbNullString' ou 'lngRowCount = 0' ou' Définissez adoRecordSet.Close' puis 'Set adoRecordSet = Nothing' .... – Ralph
@Ralph Dans mon cas, il s'agit de variables de module – Roland