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 :

Excel sans classeur ouvert prend trop de place


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 26
    Par défaut Excel sans classeur ouvert prend trop de place
    Bonjour à tous,

    je suis confronté à un problème de taille.

    Pendant une macro (copier collers, formules, tris et graphiques), mon classeur grandit sans cesse, et prend de plus en plus de mémoire vive. Cette mémoire ne se vide jamais.

    Si l'on ferme tous les classeurs, la mémoire d'excel ne se vide pas.. (or, j'aimerais redémarrer une nouvelle macro, plus ou moins identique => problème de mémoire).

    Quelqu'un sait comment vider cette mémoire, sans fermer excel ?

    Merci

    illustration : Comme en témoigne cette image, excel vide fait 800 mb en mémoire vive..

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour
    dans un premier temps tu peux essayer d'éviter les copier/coller ou les faire en directe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    range("A1")=Range("B2")
    range("B2").copy Range("A1")
    Ou essayer de vider le presse papier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.cutcopymode=false
    Si tu utilise des varaible tableau essaye de diminuer leur taille ou do'ptimiser le stockage.

    Mais vu que tu ne dit pas ce que fait ton code difficile de t'aider, j'aurais tendance a dire "800Mb, bah ca va c'est pas grand chose", mais on ne travail sans doute pas sur les même chose

    Essaye d'expliquer un peu plus ce que fait ta macro quelle sont les partie gourmande,etc.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 26
    Par défaut
    Le PC utilisé est un serveur de ma boite (quadri processeur, env 6Gb de ram,..), d'où ma surprise lorsque je vois les "compile error : out of memory".
    Le problème n'est pas les 800 Mb. C'est qu'ils s'ajoutent à la procédure qui est assez lourde. Explications:

    La macro est une grande boucle (environ 3000 itérations). Le but est de générer un document avec graphiques pour chaque élément d'une base de donnée.

    3 Fichiers :
    A- base de donnée
    B- document de calcul
    C- résultats

    1- (A) Filtre de la base de donnée, copie des résultats dans le document de calcul (ouvert et fermé à chaque itération, pour gagner de l'espace). (suivi d'un autofilter).
    2- (B) Formula arrays dans une feuille copiée à chaque fois.
    3- (B) Copie spéciale valeurs des résultats, qui sont liés à un graphique.
    4- (C) Copie de la feuille dans un nouveau fichier (et permettre de réouvrir le document de calcul)
    5- Lorsqu'un fichier a plus de 100 feuilles, il en crée un nouveau et ferme le précédent.

    A chaque copier coller, je vide le presse papier.
    J'ai également essayé de copier tous les graphiques en jpg après calculs pour les supprimer par après. Mais c'était contre productif.
    Toutes les variables sont déclarées (option.explicit).

    Bref, je pense avoir fait de mon mieux pour maximiser la mémoire..

    Certaines actions augmentent la mémoire utilisée. Notamment DELETE, puisqu'il charge en mémoire toutes les données (en cas d'annulation). Ces données ne se vident jamais. (essayez de deleter une colonne ayant 50 000 lignes, vous verrez 200mb s'ajouter à la mémoire sans pouvoir la purger).
    Vous connaissez d'autres actions qui ont le meme effet (filtre ? formulaarray ? Paste values ?)

    Merci de votre aide!

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut a mon avis
    j ai rencontré ce probleme et en fet je crois que c'est tout simplement une instance d'exel qui reste alumé alors ala fin de ton script ou de la derniere fonction
    tu met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    active workbook.close si tu a sauvegarder avant
    sinon

    ou alors si tu veux le sauvegarder sous un autre nom

    et une fenetre windows va te demander de rentrer le nom et l endroit ou tu veux l enregistrer

    voila pour moi ca a resolu le probleme
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/03/2015, 16h30
  2. Label qui prend trop de place
    Par mouss4rs dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/05/2012, 09h39
  3. Archived logs prend trop de place de maniere rapide
    Par noumian dans le forum Administration
    Réponses: 2
    Dernier message: 19/08/2008, 14h08
  4. Fermer Excel sans sauvegarder le classeur
    Par GonAl dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/08/2006, 12h32
  5. Automation excel - ouvrir un fichier sans classeur
    Par Celia1303 dans le forum Access
    Réponses: 3
    Dernier message: 23/11/2005, 20h23

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