Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour,
je débute en VBA et j'ai lu qu'il fallait gérer la mémoire, mais où tuer les objets... ?
Et comment s'assurer que le travail a été bien fait ?
Un peu de lecture ici
Un exemple vaut mieux qu'un discours....
VB:
Sub Exemple()
Application.ScreenUpdating = False
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Set Sh1 = Feuil1 'Codename de la feuille
'Autre manière de faire
Set Sh2 = Worksheet("Feuil2") 'Nom de la feuille
'*******blablabla
'On a terminé on libère les objets
Set Sh1 = Nothing 'Decharge Sh1
Set Sh2 = Nothing 'Decharge Sh2
Application.ScreenUpdating = True 'Facultatif
End Sub
Un peu de lecture ici
Un exemple vaut mieux qu'un discours....
VB:
Sub Exemple()
Application.ScreenUpdating = False
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Set Sh1 = Feuil1 'Codename de la feuille
'Autre manière de faire
Set Sh2 = Worksheet("Feuil2") 'Nom de la feuille
'*******blablabla
'On a terminé on libère les objets
Set Sh1 = Nothing 'Decharge Sh1
Set Sh2 = Nothing 'Decharge Sh2
Application.ScreenUpdating = True 'Facultatif
End Sub
Bonsoir.
C'est inutile pour les variables locales, qui ne sont de toute façon plus connues une fois terminée la procédure où elles sont utilisées. VBA supprime automatiquement les ressource mobilisées par un objet dès lors que sa dernière référence est perdue. Il est essentiellement recommandé, lorsqu'on n'en a plus besoin, de faire Erase des tableaux dynamiques globaux (déclarés en tête d'un module avant toute procédure). Affectez Nothing aussi, oui, aux objets globaux, notamment les Collection et Dictionary.
C'est cependant inutile aussi dans un UserForm ou un module de classe.
Je me pose une petite question concernant VBA Est-ce qu'il faut systématiquement faire "variable = Nothing" à la fin d'une macro ? Ou alors ça ne sert à rien car Windows se charge de purger la mémoire
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD