Message de mémoire insuffisante - Conseils Excel

Steven d'Australie écrit:

J'ai créé une macro VBA qui doit créer environ 50 graphiques à partir d'une feuille de calcul. Le problème est que chaque fois que j'exécute le programme lorsque j'arrive au 33e tableau, un message d'erreur affiche "Mémoire insuffisante", puis le programme Excel se bloque et je dois terminer le programme. J'ai 256 Mo de RAM sur mon PC et j'utilise Excel 97 dans un système d'exploitation Windows NT.

Créez-vous chaque graphique comme sa propre feuille de graphique? Excel peut gérer 16 millions de cellules sur une feuille de calcul, mais le secret est qu'il ne peut pas gérer beaucoup de feuilles de calcul. Le fichier d'aide indique que le nombre de feuilles de calcul est limité par la "mémoire disponible".

Je rencontre régulièrement le problème que vous avez. C'est horriblement frustrant, car on ne sait jamais quand il est sur le point de s'écraser. Si Visual Basic vous donne une erreur interceptable, vous pouvez arrêter la macro, enregistrer le fichier, démarrer dans un nouveau fichier. Mais ils ne le font pas - vous obtenez juste un crash.

J'ai vu le crash arriver aussi tard que 130 feuilles de calcul et dès 40. Vous devez évaluer où il va planter dans votre système, puis mettre un compteur dans la macro. Si vous pensez que vous allez tomber en panne après 32 graphiques, arrêtez le processus à 30 graphiques, enregistrez-les dans un nouveau classeur, fermez ce classeur et recommencez à les créer dans un nouveau classeur.

Ce n'est pas joli, mais c'est la seule solution de contournement que j'ai trouvée.

Une autre pensée - assurez-vous que vous fermez chaque module et formulaire utilisateur dans Visual Basic Editor en utilisant le «X» dans le coin supérieur droit. J'ai trouvé qu'en fermant simplement tous les composants de Visual Basic avant d'exécuter la macro, vous pouvez libérer un peu plus de mémoire et éventuellement insérer quelques graphiques supplémentaires dans la «mémoire disponible».

Ci-dessus, j'ai parlé de faire des choses pour conserver la mémoire. Steven a répondu aujourd'hui avec une excellente découverte:

J'ai trouvé que si je définissais les graphiques AutoScaleFont sur False, je pourrais créer environ 120 graphiques, ce qui a résolu mon problème.

Pourquoi c'est si je n'ai aucune idée, mais c'est Excel. Excellent conseil - rangez celui-ci comme une méthode obscure pour conserver la mémoire.

Articles intéressants...