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] Lenteur de chargement d'un fichier


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut [VBA-E] Lenteur de chargement d'un fichier
    Bonjour à tous.

    J'ai créé une application sous Excel qui fonctionne. Par contre, le fichier (qui pèse 1534Ko) met presque 3 minutes à se charger et il me faut autant de temps quand je quitte Excel. Pourquoi ?

    Code VBA pour l'ouverture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Auto_Open()
    With Application
        .ScreenUpdating = False
        .DisplayFormulaBar = False
        .DisplayStatusBar = False
        .CommandBars("Formatting").Visible = False
        .CommandBars("Standard").Visible = False
        .CommandBars("PivotTable").Visible = False
        .CommandBars("WordArt").Visible = False
        .CommandBars("Reviewing").Visible = False
        .CommandBars("Picture").Visible = False
        .CommandBars("Chart").Visible = False
        .CommandBars("Web").Visible = False
        .CommandBars("Forms").Visible = False
        .CommandBars("External Data").Visible = False
        .CommandBars("Drawing").Visible = False
        .CommandBars("Visual Basic").Visible = False
        End With
    End Sub
    Code VBA pour la fermeture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sheets("SUIVI").Select
    Range("A1").Select
     
    ThisWorkbook.Saved = True
     
    With Application
        .DisplayFormulaBar = True
        .DisplayStatusBar = True
        .CommandBars("Formatting").Visible = True
        .CommandBars("Standard").Visible = True
        .ScreenUpdating = True
        End With
    End Sub
    Rien d'extraordinaire il me semble. Pourtant, lorsque je mets un point d'arrêt pour la fermeture, je constate que la sauvegarde se fait instantanément et que plus rien ne se passe, pendant presque 3 minutes lorsque l'appli quitte la ligne End Sub. J'ai parfois l'impression qu'il exécute une sous-routine ou quelque chose comme ça.

    Quelqu'un a une idée ?

  2. #2
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Saved = True
    ne permet pas d'effectuer la sauvegarde du classeur, mais seulement de considérer que le classeur n'as pas été modifié, et que l'on peu sortir sans sauver...

    pour sauver c'est plutot :

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Exact, merci de me le faire remarquer. Mais j'ai toujours cette longueur d'ouverture et de fermeture.

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Tu utilises quelle version de Office ? Je pose la question parce que la routine Auto_Open est obsolète. C'est une macro Excel?

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Je travaille avec Excel 2000. C'est une procédure que j'utilise depuis longtemps et il est fort possible qu'elle soit devenue obsolète. Quelle est celle que tu utilises ?

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Regarde dans la page de code Thisworkbook

    Evenement workbook_Open

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Effectivement, avec workbook_open cela fonctionne. Cependant cela ne résoud toujours mon problème de temps d'ouverture. Le fichier ne contient aucun enregistrement. Lorsqu'il y aura 10 000, 20 000 lignes et qu'il aura doublé ou triplé de volume, il va me falloir 10 mn pour l'ouvrir ou le fermer.

  8. #8
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Tu as beaucoup de cellules qui sont le résultat d'un calcul?


    Car je ne vois pas bien ce qui pourrais ralentir le chargement de ce fichier pour l'instant, rien dans la procédur d'initialisation ne devrait ralentir...

  9. #9
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Disons qu'il y a quatre feuilles d'une trentaine de cellules chacune. J'ai fait le test avec un ancien fichier que j'ai retrouvé et qui pèse le meme poids à 10 Ko près. Il n'y a pas photo : l'ouverture se fait en moins de 10 secondes

  10. #10
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    C'est assez bizare il faudrait voir quelles sont les différences entre ces deux fichiers pour comprendre ce qui ralenti l"ouverture...

    Moi je ne vois pas 36 possibilité:

    - Soit il y a beaucoup de formules dans les différentes pages de ton classeurs qui dépendent l'une de l'autre. Et des formules assez compliquées avec bcp de IF, etc...
    Cela ralentirait le classeur a l'ouverture car il devrait recalculer tout les cellules

    - Soit au lancement tu lance une autre procédure de mise a jour des données ce qui pourrait prendre un certain temps.

    Il est très difficile de te dire 'ce qui ralenti' l'ouverture vu que je ne dispose pas du fichier en question, le plus simple serait que tu le joignes au message...

  11. #11
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Soit, enfin, ses ressources ont été épuisées et le traitement se fait, mais en passant par la zone le swap, ce qui est évidemment beaucoup plus lent...

  12. #12
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Le fichier est à votre disposition, dites moi ce que vous en pensez !

  13. #13
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Le chargement n'est absolument pas lent chez moi ?

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674

  15. #15
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Qu'est ce que la zone de swap ?

  16. #16
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Quand sa mémoire est trop encombrée, Windows utilise le disque dur comme stockage et travail (comme mémoire) ===>>> énormément d'accès disque pour traiter ===>>> lenteur visible !
    Ces utilisations du disque en swap seront de surcroît plus pénibles si une défragmentation du disque n'a pas été faite depuis longtemps alors que l'on y a effectué de très nombreuses opérations (effacements, etc...) sur des fichiers de tailles très différentes les unes des autres. A ce propos : si tu n'as pas défragmenté ton disque dur depuis longtemps, il se peut également que ton fichier à problème soit "disséminé" sur de nombreux secteurs.....=====>>> lourdeurs là aussi !

  17. #17
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Je viens de tester mes fichiers sur l'ordi d'un copain est le résultat est stupéfiant. Ils s'ouvrent quasiment instantanément. Donc c'est un paramètre d'Excel qui ralentit l'ouverture du fichier.

    Quelqu'un a t il une idée ?

  18. #18
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Antivirus???

    Edit --> En plus de tout ce qui a été dit plus haut.

    Combien de mémoire dans ta machine, quel processeur, quel OS?

    Autrement dit, peu de chance que ce soit un "paramètre" d'Excel

  19. #19
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    As-tu lu attentivement ce que t'a mis jlfmarques ?
    Je ne vois pas quels paramètres d'Excel pourraient bien être à l'origine de cette lenteur. Fragmentation, taille mémoire, antivirus, OS, µp, etc. mais config d'Excel ???????

    Vérifie tout de même que tu ne sois pas en "Enregistrement automatique" parce que là ...

  20. #20
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    J'ai un micro portable que j'ai donc amené. On a installé Excel 2000, donc la même version, sur son poste. Les deux postes ont la même configuration (XP Pro, V 2002 SP1, Pentium 4CPU 2.80 Ghz, 512 Mo).
    Donc 2 postes et 2 excel 2000 (même paramètres). Et pourtant, sur son poste le fichier s'ouvre pratiquement instantanément et sur le mien il faut presque 2 mn.

    J'ai bien lu ce qu'à écrit jmfmarques. J'ai défragmenté, j'ai viré les fichiers temporaires. Je n'ai pas activé la sauvegarde automatique.

    Sur la fermeture (environ 2 mn aussi), j'ai placé un point d'arrêt et je remarque que l'ordi semble ramer sur le End Sub de la fonction auto_close comme s'il effectuait quelque chose d'autre (une sous-routine) avant de vraiment fermer Excel.

    J'avoue que là je cale complet.

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/06/2006, 12h06
  2. [VBA][EXCEL] suspendre verification de présence de fichier..
    Par Scuriolus dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/12/2005, 08h33
  3. [Debutant][D7]Pb au chargement d'un fichier *.3ds
    Par [Silk] dans le forum OpenGL
    Réponses: 1
    Dernier message: 26/06/2005, 11h10
  4. [SAX] Chargement d'un fichier de paramétrage
    Par doublep dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 05/12/2004, 20h42
  5. chargement d'un fichier externe en base de données
    Par samsbike dans le forum Administration
    Réponses: 3
    Dernier message: 24/08/2004, 17h35

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