Optimisation du temps sous Excel
Résolu
Totodude
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Voici mon soucis : j'ai un super fichier excel qui rappatrie à l'aide d'une macro les données depuis d'autres fichiers excel. Ces infos sont rappatrié sous un onglet, et sont ensuite exploité dans plusieurs autres onglets.
Mon soucis est que ma macro ouvre les fichiers un par un et rappatrie les données (il y a 120 fichiers en tout), et ça prend 1h30.
J'ai remarqué que le temps perdu était non pas dans l'exécution de la macro, mais du fait qu'une fois les données rappatriées, les calculs derrières font que la feuille excel met un moment à se mettre à jour (et pendant ce temps la macro n'avance pas).
D'où ma demande d'aide.
J'entrevois 2 possibilités (que je ne sais pas développer)
* faire en sorte que la macro s'exécute et que les onglets avec les calculs ne se mettent à jour qu'a la fin et pas constamment
* faire tourner la macro sur un fichier "light" sans les onglets lourds, et ensuite les importés (mais je ne sais pas comment faire cette importation vu qu'il y a des références aux premiers onglets avec toutes les infos, donc faire un copier des onglets de calculs créé des liens avec le fichier d'ou je les prend)
dans le 2 ème cas pour être plus clair, j'ai 2 fichier A et B, A étant le fichier "light", et B le vierge avec les onglets de calcul. Je lancerais la macro sur le A, puis j'importe l'onglet 2 du fichier B dans le A (mais en faisant ça je créé des liens avec le fichier B)
J'espère que c'est clair...merci beaucoup pour votre aide,
A plus
Tom
Voici mon soucis : j'ai un super fichier excel qui rappatrie à l'aide d'une macro les données depuis d'autres fichiers excel. Ces infos sont rappatrié sous un onglet, et sont ensuite exploité dans plusieurs autres onglets.
Mon soucis est que ma macro ouvre les fichiers un par un et rappatrie les données (il y a 120 fichiers en tout), et ça prend 1h30.
J'ai remarqué que le temps perdu était non pas dans l'exécution de la macro, mais du fait qu'une fois les données rappatriées, les calculs derrières font que la feuille excel met un moment à se mettre à jour (et pendant ce temps la macro n'avance pas).
D'où ma demande d'aide.
J'entrevois 2 possibilités (que je ne sais pas développer)
* faire en sorte que la macro s'exécute et que les onglets avec les calculs ne se mettent à jour qu'a la fin et pas constamment
* faire tourner la macro sur un fichier "light" sans les onglets lourds, et ensuite les importés (mais je ne sais pas comment faire cette importation vu qu'il y a des références aux premiers onglets avec toutes les infos, donc faire un copier des onglets de calculs créé des liens avec le fichier d'ou je les prend)
dans le 2 ème cas pour être plus clair, j'ai 2 fichier A et B, A étant le fichier "light", et B le vierge avec les onglets de calcul. Je lancerais la macro sur le A, puis j'importe l'onglet 2 du fichier B dans le A (mais en faisant ça je créé des liens avec le fichier B)
J'espère que c'est clair...merci beaucoup pour votre aide,
A plus
Tom
A voir également:
- Optimisation du temps sous Excel
- Optimisation pc - Accueil - Utilitaires
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Excel trier plusieurs colonnes en même temps - Guide
- Déplacer colonne excel - Guide
4 réponses
Bonjour,
As-tu essayé en passant supprimant le calcul automatique et en le rétablissant ensuite ?
ça devrait être :
Application.Calculation = xlManual
Application.Calculation = xlAutomatic
et tu peux forcer un recalcul des feuilles par Calculate
eric
As-tu essayé en passant supprimant le calcul automatique et en le rétablissant ensuite ?
ça devrait être :
Application.Calculation = xlManual
Application.Calculation = xlAutomatic
et tu peux forcer un recalcul des feuilles par Calculate
eric
Raymond PENTIER
Messages postés
58990
Date d'inscription
Statut
Contributeur
Dernière intervention
17 355
Bravo, eriiic ! C'est ce qu'on appelle de la concision et de l'efficacité !
Merci beaucoup Eric.
Je n'en reviens pas de la simplicité, ça marche du feu de dieu, je suis passé de 1h30 à 4 minutes d'exécution!!!
Je n'ai pas eu besoin de Calculate, j'ai juste mis
Application.Calculation = xlManual au début de la macro, puis
Application.Calculation = xlAutomatic à la fin
Merci encore et à plus
Thomas
Je n'en reviens pas de la simplicité, ça marche du feu de dieu, je suis passé de 1h30 à 4 minutes d'exécution!!!
Je n'ai pas eu besoin de Calculate, j'ai juste mis
Application.Calculation = xlManual au début de la macro, puis
Application.Calculation = xlAutomatic à la fin
Merci encore et à plus
Thomas