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 :

Conseil(s)/Expérience(s) fermeture de fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 36
    Par défaut Conseil(s)/Expérience(s) fermeture de fichiers
    Bonjour,

    Tout d'abord un peu expliquer mon environnement: 3 fichiers contenant des macros, les fichiers vont de 60kB à >400MB
    Pour ma dernière macro et afin de faciliter le traitement j'ouvre manuellement mes 3 fichiers.
    J'exécute ma boucle dans ma macro, ce qui lui prends entre 1min30 et 9min, en fin de boucle je pose la question afin
    de savoir si une boucle suivante doit être exécutée, si oui je suis reparti pour les x minutes.
    Si la réponse est non je dois sauver mes trois fichiers et sortir d'excel.

    C'est là que j'ai un soucis, je ne sais s'il y a un délais pour l'écriture d'un fichier car:
    1. à deux reprises j'ai eu un fichier de corrompu, impossible de le sauver (et ce n'étais pas le plus volumineux, c'est le fichier
    de taille moyenne)
    2. je ne sors pas de l'application

    Ce que j'ai comme fin de code, en résumé:

    VariableFichierGros.Close SaveChanges:=True --> fichier de 422MB actuellement
    VariableFichierMoyen.Close SaveChanges:=True --> fichier de 4.5 MB actuellement
    VariableFichierPetit.Close SaveChanges:=True --> fichier de 60 KB actuellement

    et finalement, juste avant le End Sub :

    Je ne sais par ou commencer mes recherches, alors si quelqu'un a de l'expérience ou des conseils, merci beaucoup.
    Guy

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    premiere suggestion, diminuer ton plus gros fichier de 400Mo en passant par le format xlsb
    https://jpcheck.developpez.com/tutor...binaires-xlsb/

    Seconde suggestion, effectuer un Save dans un premier temps, et faire ensuite un Close False (tu auras une étape de plus dans le code, mais si ca plante sur l'une ou l'autre, tu auras de quoi faire pour savoir de quoi il s'agit.

    Troisieme suggestion, ton Application.Quit n'est pas toujours la solution la plus pertinente. En effet, que faire si en plus des fichiers ouverts par ta macro et ton fichier de code tu as d'autres fichiers encore qui sont aussi ouverts ?

    L'idée ici serait potentiellement de créer une xlApp dans laquelle tu ouvres les 3 classeurs, et qui fermera uniquement cette application...
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 36
    Par défaut Merci pour les infos
    Salut Jean-Philippe,

    Merci pour tes infos, je ne connaissais pas cet autre type de fichier. Je viens d'essayer et mon fichier a perdu quasiment 90% de sa taille, il est passé de 420MB à 48MB.
    En ce qui concerne la xlApp, connais pas ... non plus ... et je regardes cela de plus près aussi.

    PS: Il semble que je bute sur certaines limites d'excel après une petite centaine de boucles de ma macro, donc je vais chercher une autre
    solution

    Merci encore.
    Guy

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    xlApp c'est juste un nom de variable L'idée est de déclarer une variable de type Excel.Application et de travailler avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim xlApp as Excel.Application
    Set xlApp = New Excel.Application
     
    ...
    xlApp.Quit
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. [Properties] conseil pour l'ecriture d'un fichier de config
    Par yann_p dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 11/10/2006, 12h16
  2. [VBA-E] fermeture de fichier et curseur de souris
    Par thitoux dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/08/2006, 13h17
  3. conseil sur stockage et format de fichier annexe
    Par Davik dans le forum Access
    Réponses: 47
    Dernier message: 06/04/2006, 16h25
  4. Pb de fermeture de fichiers .js
    Par Cako19 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/12/2005, 15h17
  5. Fermeture de fichier
    Par patmaba dans le forum Entrée/Sortie
    Réponses: 12
    Dernier message: 05/10/2005, 11h00

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