IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Saturation de la mémoire car trop de macros activées


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut [VBA-E] Saturation de la mémoire car trop de macros activées
    Bonsoir,

    au bureau, sous windows 2000 nt, j'utilise plusieurs fichiers Excel ( version 2000) contenant du code vba. Après l'utilisation de ces fichiers au cours de la journée, la mémoire à tendance à saturer et l'ordinateur se plante (arrivant même parfois à endommager des fichiers).

    J'ai l'impression que lorsque je ferme un fichier contenant une macro, (sans fermer l'application excel elle-même), la mémoire prise par le traitement de la macro ne se libère pas et c'est pour cela que la mémoire sature. : Quelqu'un aurait-il une solution pour libérer la mémoire à la fermeture du fichier.

    Merci aux éventuels réponses.

    MrYoYo

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut Re: Saturation de la mémoire car trop de macros activées
    Citation Envoyé par MrYoYo
    Bonsoir,

    au bureau, sous windows 2000 nt, j'utilise plusieurs fichiers Excel ( version 2000) contenant du code vba. Après l'utilisation de ces fichiers au cours de la journée, la mémoire à tendance à saturer et l'ordinateur se plante (arrivant même parfois à endommager des fichiers).

    J'ai l'impression que lorsque je ferme un fichier contenant une macro, (sans fermer l'application excel elle-même), la mémoire prise par le traitement de la macro ne se libère pas et c'est pour cela que la mémoire sature. : Quelqu'un aurait-il une solution pour libérer la mémoire à la fermeture du fichier.

    Merci aux éventuels réponses.

    MrYoYo
    et elle font quoi ces macros ??

  3. #3
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut
    Bonsoir, merci de vous intéressez à mon problème.

    les macros que j'utilise en principe copient des cellules d'une feuille et les collent dans une autre.

    MrYoYo

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    J'ai déjà travaillé avec de grosses applications VBA Excel (Traitement de gros fichiers textes, tri, filtrage, mise en graphique et injection dans Word) sans jamais avoir de problème de mémoire.

    Par contre, ce qui peut planter assez rapidement Excel, c'est de faire de nombreux changements de format (couleur de caractère, couleur de fond, bordures en différentes couleurs) dans les feuilles.

    C'était, en tout cas, vrai en Excel 97 car ces changements de formats (m'a-t-on dit) étaient stockés dans la mémoire basse (les fameux 640k du DOS).
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai deux autres hypothèses à te soumettre si celle d'AlainTech n'a pas d'écho dans tes procédures.

    J'ai eu ce phénomène en deux circonstances différentes
    1 - Changement de version (retour vers une version antérieure d'une simple "mise à jour" - SR2 -> SR1 - Excel 97)
    2 - Nombre de graphs trop élevé sur un nombre de feuilles très moyen (30 x) - C'était également sous NT (Mais le même fichier passé sous Office XP n'a plus posé de pb)
    Aujourd'hui, toujours sur office 97, mais sous XP, je n'ai pas "encore" rencontré ce second problème (ce qui ne signifie pas qu'il n'existe pas)

    Arrivé là de mes réflexions, je ne sais pas si ça va beaucoup t'aider...

    Dis-nous

    A+

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    une macro qui a tourné n'occupe plus rien si on ferme le classeur
    la contenant
    par contre si le classeur est ouvert il faut
    vérifier dans les procédures et fonctions
    qu'à chaque set correspond un nothing
    il faut aussi ne pas abuser des fonctions statiques
    et desprocèdures récursives

    si les macros copient des données feuille à feuille
    il faut vérifier les plages de format sur la feuille initiale


    si les performances s'écroulent la première chose à faire est de supprimer
    les lignes et colonne ne contenant pas de données et de voir l'évolution

  7. #7
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut
    C'est certainement lié à la version de windows car chez moi, j'utilise Windows XP je n'ai pas de problème avec les fichiers, j'en ai d'ailleur concu certains chez moi.

    Mais c'est vrai qu'à la maison, je ne les utilise pas tous en même temps alors qu'au bureau j'ai parfois besoin d'en ouvrir une quinzaine en même temps.

    Est-ce que d'après vous ça ne pourrait pas être lié au fait que le presse papier est plein et qu'il aurait besoin d'être vidé, et dans ce cas là quelle peut-être la solution ?

    A+

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu peu essayer de vider le presse papier office par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub VidePressePapier()
    On Error Resume Next
    Application.CommandBars("Clipboard").Controls(4).Execute
    End Sub

  9. #9
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut
    Merci, je vais essayer cette méthode dès demain au boulot et je te tiens au courant du résultat.

    A+

  10. #10
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut
    Salut,

    Bon, apparement c'est effectivement un problème de version antérieure à Excel 2000, L'un des fichiers que j'utilise a été créé il y a plusieurs années par une personne qui occupait mon poste auparavant.

    Lorsque j'ouvrais ce fichier, contenant une seule petite macro, le module se chargeait dans l'explorateur de projet de vba, Lorsque je le fermais, le module restait ouvert et ceci autant de fois que j'ouvrais et fermais le fichier. Ce qui à la longue saturait la mémoire.

    Ce que j'ai fais, c'est de créer un nouveau fichier dans lequel j'ai recopié les onglets du vieux fichier, j'ai fais quelques essais d'ouverture et de fermeture, le phénomène ne s'est pas reproduit.

    Je ne mets pas encore Résolu car je serais fixé vendredi, jour où j'utilise énormément de fichiers et notament celui-ci. Je vous tiendrai au courant du résultat vendredi soir.

    MrYoYo

  11. #11
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut
    Bonsoir,

    Bon, après quelques essais, la raison la plus probable de mon problème est certainnement du à un changement de version d' Excel comme vous l'aviez supposé.

    Après avoir refait le fichier qui avait l'air de mettre la pagaille, le problème ne semble plus se présenter.

    Je vous remercie à tous de m'avoir mis sur la voie.

    Je déclare le problème résolu.

    Merci pour ce forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2007, 11h39
  2. Réponses: 7
    Dernier message: 06/06/2006, 15h38
  3. [VBA-E]QueryTable et utilisation mémoire
    Par Pgs dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2006, 09h19
  4. [VBA-E] Liaisons qui ne se mettent pas à jour (macro trop rapide?)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 21/11/2005, 09h36
  5. [Outlook express 6] Refuser un message car trop gros ?
    Par Évariste Galois dans le forum Outlook Express / Windows Mail
    Réponses: 6
    Dernier message: 24/10/2005, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo