Microsoft 365 EXCEL VBA - Gestion de la mémoire

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 !

Excel6689

XLDnaute Nouveau
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 ?
par avance merci​
 
Dernière édition:
Solution
Bonsoir Excel6689, le forum

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
@Phil69970
Bonsoir Excel6689, le forum

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
@Phil69970
 
Bonsoir Phil69970, merci pour ta réponse.
Sur un projet modulaire il faut le faire sur chaque Sub ou Function ?
Et pour les range aussi apparemment ?

Il n'a pas moyen de savoir ce que "consomme" le code en mémoire en dehors du gestionnaire des tâches à supposer que cela soit fiable ?
 
Dernière édition:
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.
 
Dernière édition:
Le fil

Sans rien connaitre de ton projet et je cite :
Ne maîtrisant pas VBA c'est un peu comme me parler chinois, même si j'ai conscience qui faille y prêter attention
Je ne peux que te conseiller de la lecture :
Et de la lecture en général

@Phil69970
 
- 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

Discussions similaires

Réponses
15
Affichages
2 K
Réponses
1
Affichages
364
Retour