Bonjour à tous,
Je cherche à optimiser le temps de traitement d'une macro. J'ai réalisé une macro pour copier chaque jour les lignes de plusieurs fichiers et les agréger dans un unique fichier. Actuellement, je copie environ 2500 lignes venant de 4 fichiers différents, ce qui prend presque 5 minutes.
J'avais essayé plusieurs méthodes pour réaliser le copier coller, sans succès donc je passe par une boucle qui me copie chaque ligne les unes après les autres. Le problème, c'est que j'ai de plus en plus de lignes à copier et le temps de traitement peut être très long. Je pense qu'on peut optimiser ce temps de traitement en réalisant le copier coller d'une autre manière (utilisation d'un tableau array, définir des variables pour copier des ranges,...) mais je n'ai pas les compétences nécessaires pour le faire d'où ma sollicitation.
Je vous joins un jeu de fichier pour tester la macro :
macro copie : fichier où l'on souhaite agréger les lignes
stock xxx : fichier qui contient les lignes que l'on copie
voici le morceau de code qui réalise le copier coller :
Je vous remercie par avance pour votre aide
Je cherche à optimiser le temps de traitement d'une macro. J'ai réalisé une macro pour copier chaque jour les lignes de plusieurs fichiers et les agréger dans un unique fichier. Actuellement, je copie environ 2500 lignes venant de 4 fichiers différents, ce qui prend presque 5 minutes.
J'avais essayé plusieurs méthodes pour réaliser le copier coller, sans succès donc je passe par une boucle qui me copie chaque ligne les unes après les autres. Le problème, c'est que j'ai de plus en plus de lignes à copier et le temps de traitement peut être très long. Je pense qu'on peut optimiser ce temps de traitement en réalisant le copier coller d'une autre manière (utilisation d'un tableau array, définir des variables pour copier des ranges,...) mais je n'ai pas les compétences nécessaires pour le faire d'où ma sollicitation.
Je vous joins un jeu de fichier pour tester la macro :
macro copie : fichier où l'on souhaite agréger les lignes
stock xxx : fichier qui contient les lignes que l'on copie
voici le morceau de code qui réalise le copier coller :
Code:
Set wbSource = ActiveWorkbook
Set detail = wbSource.Sheets("Détail")
On Error Resume Next
detail.ShowAllData
m = 2 ' ligne de chaque fichier source ==> ' boucle ici à modifier pour copier plus rapide ??
While detail.Cells(m, 1) <> ""
detail.Rows(m).Copy trait.Rows(n) ' (n = est la ligne du fichier de sortie)
m = m + 1
n = n + 1
Wend
Je vous remercie par avance pour votre aide