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 :

Fichiers se ferment à la fin de l'execution d'une série de macros


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Supply Chain analyst
    Inscrit en
    Octobre 2021
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Supply Chain analyst

    Informations forums :
    Inscription : Octobre 2021
    Messages : 26
    Par défaut Fichiers se ferment à la fin de l'execution d'une série de macros
    Hello,

    Dans un classeur . xlsm j'ai une macro centralisant une dizaine de macros et qui s'exécute correctement sauf qu'à la fin tous les fichiers se ferment sans que j'ai le temps de travailler dessus ou de les enregistrer. (Crash Excel en gros)
    J'ai lancé les macros les unes après les autres pour voir si le problème venait des macros mais ce n'est pas le cas.
    Quand je lance la "master macro" exécutant toutes les macros, Excel crash à la fin de l'exécution mais pas quand je lance les macros une par une.

    Auriez-vous une idée du pb que je rencontre ?


    Merci d'avance et bonne fin de journée !

    Cordialement,

    Valentin

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    crash excel ou fermetures prévues par les macros ?

    que font tes macros au début et à la fin à propos du fichier lui-même ?

    Si tu lances en pas à pas la macro master ça se passe bien ?

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 626
    Par défaut
    Bonjour,

    Si cela crache c'est peut-être qu'une macro se lance avant que la précédente soit terminée. Par exemple tu enregistre le classeur et tu veux faire une autre action dessus avant que l'enregistrement soit terminé.

    ONTAYG

  4. #4
    Membre averti
    Homme Profil pro
    Supply Chain analyst
    Inscrit en
    Octobre 2021
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Supply Chain analyst

    Informations forums :
    Inscription : Octobre 2021
    Messages : 26
    Par défaut
    Hello,

    Merci pour vos réponses.

    ONTAYG, dois-je déplacer la discussion ? Je parle bien de VBA.
    Il semblerait que cela ne soit pas un emmêlement des macros car quand je lance en pas à pas, tout se passe bien !

    Les macros travaillent sur 7 fichiers différents et à la fin la macro créé un fichier "résultat" que je souhaiterais enregistrer mais l'ensemble des fichiers se ferment sans aller au bout de l'exécution des macros. Je suis censé avoir une msgbox disant que le boulot est terminé et cette dernière n'apparaît même pas.

    Je réessaie ce matin pour voir !

    Bonne journée,

    Cordialement

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Citation Envoyé par ValentinD78310 Voir le message
    Il semblerait que cela ne soit pas un emmêlement des macros car quand je lance en pas à pas, tout se passe bien !
    C'est tout le contraire.
    Cela fait un indice de plus pour un emmêlement.
    Lorsque tu exécute en pas à pas, tu laisse plus de temps à la machine pour terminer un traitement en cours et donc tu empêche le programme de s'emmêler.


    Citation Envoyé par ValentinD78310 Voir le message
    Les macros travaillent sur 7 fichiers différents et à la fin la macro créé un fichier "résultat" que je souhaiterais enregistrer mais l'ensemble des fichiers se ferment sans aller au bout de l'exécution des macros. Je suis censé avoir une msgbox disant que le boulot est terminé et cette dernière n'apparaît même pas.
    Encore un indice penchant pour un emmêlement.
    Il semblerait que les processus qui écrivent dans ces fichiers ne les ont pas refermés ou n'en ont pas eu le temps.

    Lorsque tu exécutes tes macros une à une, Excel libère les ressources que tu n'a pas libéré explicitement à la fin de l'exécution.
    En faisant exécuter tes macros par une autre macro, les ressources que tu ne libère explicitement seront libérées uniquement lorsque la macro principale sera terminé.

    A mon avis, tu as donc une ressource ouverte en écriture qui n'est pas libéré lorsque tu tente d'y accéder en lecture.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Citation Envoyé par ValentinD78310 Voir le message
    Les macros travaillent sur 7 fichiers différents
    De quelle façon ? chaque macro ouvre et ferme ces fichiers ?

    et à la fin la macro créé un fichier "résultat"
    quelle macro ? chacune ? la "master macro" seulement ?

    que je souhaiterais enregistrer
    l'enregistrement peut se faire par macro

    mais l'ensemble des fichiers se ferment sans aller au bout de l'exécution des macros.
    Il est en principe normal de libérer les ressources une fois fini.


    Je suis censé avoir une msgbox disant que le boulot est terminé et cette dernière n'apparaît même pas.
    c'est la "master macro" qui doit la faire apparaitre ? il n'y a pas de condition ?

    Il y a peut être une gestion d'erreur qui fait quitter purement et simplement l'exécution et de ce fait, ça interrompt le processus sans avertissement ?

  7. #7
    Membre averti
    Homme Profil pro
    Supply Chain analyst
    Inscrit en
    Octobre 2021
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Supply Chain analyst

    Informations forums :
    Inscription : Octobre 2021
    Messages : 26
    Par défaut
    Hello,

    Pour tout vous expliquer, l'outil a deux versions :
    V1 - L'opérateur ouvre lui même les fichiers d'entrées et il lance ensuite la "master-macro". Tout fonctionne très bien et je n'ai aucune erreur.
    V2 - L'opérateur a un fichier central où en cliquant sur un bouton, la "master-macro" ouvre les fichiers du dossier sélectionné au début du programme avant d'exécuter le reste.
    La master-macro ne ferme pas les fichiers d'elle-même, si la solution ci-dessous ne fonctionne pas alors je testerai !
    Je ne veux pas que l'enregistrement se fasse automatiquement, et je pense que la macro planterait avant que le fichier résultat ne soit enregistré.

    La V2 a marché sur des tests avec peu de données dans les fichiers d'entrées et ne marche plus depuis l'augmentation du volume de données à traiter.
    Ce que je peux essayer pour réduire la lourdeur du process et faciliter le boulot à VBA :
    - Certains fichiers d'entrées sont des tables qui ne changeront pas, donc ils peuvent être mis en dur dans le fichier central (Cela réduirait le nb de fichiers d'entrée)

    Je test et je vous dis !

    Merci pour vos réponses popo, umfred

  8. #8
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,

    La V2 a marché sur des tests avec peu de données dans les fichiers d'entrées et ne marche plus depuis l'augmentation du volume de données à traiter.
    Plus de données augmente le temps de traitement et il faudrait laisser respirer l'enchainement : as-tu essayé de rajouter de la fonction DoEvents qui te permet de laisser la main au système dans tes différentes procédures ?

  9. #9
    Membre actif
    Homme Profil pro
    Technicien aéronautique
    Inscrit en
    Octobre 2020
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 124
    Par défaut
    Citation Envoyé par anasecu Voir le message
    Bonjour,


    Plus de données augmente le temps de traitement et il faudrait laisser respirer l'enchainement : as-tu essayé de rajouter de la fonction DoEvents qui te permet de laisser la main au système dans tes différentes procédures ?
    C'est tentant de dire que anasecu est un maître.
    je n'en ferai rien, il n'en demeure pas moins que c'est un érudit.
    Je ne remercierai jamais assez anasecu sur les aides de développement que j'ai voulu développer.
    Au passage, le cahier de consignes est viral sur internet.
    les demandes d'aide sont devenues logiques.

    anasecu est un maître.
    peut-être hors des lignes établies ..oui ...mais efficace et vraiment sympa et à l'écoute.. ce qui fait tout avancer.

    Je le remercie...vraiment
    Merci.

  10. #10
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonsoir airfigeac

    Citation Envoyé par ;11939559
    C'est tentant de dire que anasecu est un maître.
    Faut pas exagérer mon ami et si tu veux une réponse privée il faudra me laisser un peu de place...

Discussions similaires

  1. Réponses: 13
    Dernier message: 11/11/2017, 16h10
  2. Attendre la fin de l'execution d'une fonction
    Par metalcoyote dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 05/12/2008, 14h27
  3. Forcer la fin de l'execution d'une fonction
    Par Valkirion dans le forum C++
    Réponses: 7
    Dernier message: 10/08/2007, 14h32
  4. Fichier n'executant qu'une série de macro sans s'ouvrir
    Par mordrhim dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2007, 17h01
  5. Attendre la fin de l'execution d'une fonction
    Par Invité dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/04/2007, 10h33

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