[VBA] Vidange de l'espace mémoire??

Verba_Tim

XLDnaute Occasionnel
Salutation

Un petit problème de nouveau...
J'ai une macro assez lourde, 16-17 modules, qui traite un fichier assez lourd, 110 000lignes environs, et exécute beaucoup de calcul et traitement, réalise une douzaine de graph'... bref un monstre ^^
Lorsque je l'exécute après que mon pc ai fait une bonne nuit de sommeil, elle dure environ 3minute... Après l'avoir fait tourné trois-quatre fois, on passe aisément a 4-5 voir 6 minute.
Et il arrive un moment ou ma macro plante sur un bref copier/coller en me disant que excel sature.

Clairement, la mémoire virtuel d'excel sature...
Je pense que c'est en partie parce qu'il m'arrive souvent de sortir en cours de boucle avec des 'exit XXX', et aussi a cause du nombre de donnée que je sélectionne avec les procédure du type '.select'.

Mais le problème c'est que je ne peut pas me permettre de faire autrement comme par exemple de coder mes données en dur, parce que je dois avoir un temps d'exécution optimal.

Existe-t-il une commande pour vider l'espace mémoire utiliser comme dans nombre de langage de programmation comme le C/C++ par exemple??
Ou va-t-il falloir que je redémarre ma station ou excel toute les X exécutions?

Au plaisir de vous lire ^^

VB_Tim
 
Dernière édition:

Verba_Tim

XLDnaute Occasionnel
Re : [VBA] Vidange de l'espace mémoire??

RE ^^
Ne t'en fait pas Hasco je t'ai bien lu ^^ ce message étais pour bulug ^^
Le End marche très bien ^^
J'ai abandonner la macro de nettoyage... marche pas top... Et puis c'est pas génant au final ^^
Encore merci :)

A +

Edit: j'avais pas vu Sample ^^" merci je test ;)
 

Misange

XLDnaute Barbatruc
Re : [VBA] Vidange de l'espace mémoire??

Bonjour

En complément des réponses précédentes, notamment du set variable = nothing et du end :
pour vider le presse papier
Ce lien n'existe plus

pour optimiser le code : le plus efficace c'est vraiment de passer en mode de calcul manuel en début de macro et de rétablir le calcul auto soit à la fin soit temporairement si il est indispensable de le faire avant une étape de la macro.

Remplacer tant que faire ce peut les formules (surtout les sommeprod et autres matricielles) par la valeur en VBA.

Voir l'excellent tuto de Laurent Longre sur ce sujet (en français)
Ce lien n'existe plus
 

Discussions similaires