Bonjour,
Je me permets de vous solliciter car je suis débutant en programmation VBA et je ne sais pas comment optimiser le code d'une macro que j'ai "bricolé" pour mon travail.
En effet, je dois comparer 2 fichiers entre eux et mettre à jour l'un des fichiers par rapport à l'autre. Le premier fichier est le fichier de référence qui contient les informations de référence à jour. Le deuxième fichier est un fichier de travail, qui permet de suivre d'autres informations liées aux données de référence du premier fichier.
J'ai donc réalisé (comme j'ai pu) une macro qui va, à l'ouverture du fichier de travail, réaliser les actions suivantes :
- Recherche les lignes qui n'existe plus dans le fichier de référence et les colorent en rouge (la comparaison se fait par rapport à la colonne 3 et 4 des fichiers ci-joint)
- Met à jour les données de référence pour les lignes qui sont présentes dans les 2 fichiers (pour éviter que la modification d'une information contenue dans une colonne non testée du fichier de référence ne soit pas mise à jour dans le fichier de travail)
- Recherche les lignes qui ont été rajoutées dans le fichier de référence, copie ces lignes, les rajoutent dans le fichier de travail et les colorent en vert.
- Affiche un message qui indique le nombre de lignes qui ont été supprimées et le nombre de lignes qui ont été ajoutées.
Cette macro fonctionne mais le problème c'est qu'elle prend beaucoup trop de temps à s'exécuter (elle doit s'exécuter à chaque ouverture du fichier de travail!!).
Étant novice en VBA j'ai très probablement du alourdir inutilement ma macro, pourriez vous m'aider à optimiser cette macro pour qu'elle puisse s'exécuter dans un temps qui reste raisonnable ? (de l'ordre de 10 secondes)
Vous trouverez ci-joint les 2 fichiers citées plus haut : le fichier de référence "Copie de Liste alphabétique des sites vtest1.xls" et le fichier de travail "Listes installations test1.xls". Le nombre de ligne du fichier de référence à été volontairement tronqué pour une question de taille. Du coup, le délai d'exécution de la macro paraît correct alors qu'en réalité lorsque le fichier contient le nombre de lignes réel (environ 1700 lignes), le délai est beaucoup plus long!!
Merci d'avance pour l'aide que vous pourrez m'apporter.
Cordialement,
PS : pour la bonne exécution de la macro, il faut modifier le chemin du fichier de référence " Chemin_fichier_réf =".
Je me permets de vous solliciter car je suis débutant en programmation VBA et je ne sais pas comment optimiser le code d'une macro que j'ai "bricolé" pour mon travail.
En effet, je dois comparer 2 fichiers entre eux et mettre à jour l'un des fichiers par rapport à l'autre. Le premier fichier est le fichier de référence qui contient les informations de référence à jour. Le deuxième fichier est un fichier de travail, qui permet de suivre d'autres informations liées aux données de référence du premier fichier.
J'ai donc réalisé (comme j'ai pu) une macro qui va, à l'ouverture du fichier de travail, réaliser les actions suivantes :
- Recherche les lignes qui n'existe plus dans le fichier de référence et les colorent en rouge (la comparaison se fait par rapport à la colonne 3 et 4 des fichiers ci-joint)
- Met à jour les données de référence pour les lignes qui sont présentes dans les 2 fichiers (pour éviter que la modification d'une information contenue dans une colonne non testée du fichier de référence ne soit pas mise à jour dans le fichier de travail)
- Recherche les lignes qui ont été rajoutées dans le fichier de référence, copie ces lignes, les rajoutent dans le fichier de travail et les colorent en vert.
- Affiche un message qui indique le nombre de lignes qui ont été supprimées et le nombre de lignes qui ont été ajoutées.
Cette macro fonctionne mais le problème c'est qu'elle prend beaucoup trop de temps à s'exécuter (elle doit s'exécuter à chaque ouverture du fichier de travail!!).
Étant novice en VBA j'ai très probablement du alourdir inutilement ma macro, pourriez vous m'aider à optimiser cette macro pour qu'elle puisse s'exécuter dans un temps qui reste raisonnable ? (de l'ordre de 10 secondes)
Vous trouverez ci-joint les 2 fichiers citées plus haut : le fichier de référence "Copie de Liste alphabétique des sites vtest1.xls" et le fichier de travail "Listes installations test1.xls". Le nombre de ligne du fichier de référence à été volontairement tronqué pour une question de taille. Du coup, le délai d'exécution de la macro paraît correct alors qu'en réalité lorsque le fichier contient le nombre de lignes réel (environ 1700 lignes), le délai est beaucoup plus long!!
Merci d'avance pour l'aide que vous pourrez m'apporter.
Cordialement,
PS : pour la bonne exécution de la macro, il faut modifier le chemin du fichier de référence " Chemin_fichier_réf =".