Optimiser une macro dont le temps de calcul est très long

Bonjour à tous.
Je cherche à optimiser le fonctionnement d'une de mes macros. Celle ci fonctionne bien, mais le volume à traiter étant très important, le temps de calcul est très important.

Le but de la macro est de comparer deux listes pour trouver les éléments identiques, et ramener une info d'une table vers une autre.

Le principe que j'utilise est, pour chaque ligne de ma table 1, d'aller balayer toutes les lignes de ma table 2 pour trouver une éventuelle correspondance et ramener l'info recherchée.

Voici un fichier d'exemple

19essai-2.xlsm (24.56 Ko)

Sur une dizaine de ligne comme dans mon fichier d'exemple (très raccourci), tout se passe bien, mais je dois obtenir le même résultat sur une table 1 d'environ 2500 lignes et une table 2 d'environ 500 à 600 ligne. Et là, c'est le drame ... la macro a déjà tourné 1 heure sans aboutir ... ... J'ai stoppé le fonctionnement car ce n'est pas imaginable pour l'utilisateur final.

Est ce que l'un d'entre vous aurait une autre solution de codage pour optimiser ce fonctionnement ?

J'ai pensé à utiliser des variable "Array", mais je ne les ai jamais utilisée et je ne sais pas comment les mettre en oeuvre.

Je suis ouvert à toute solution.

Merci par avance pour vos réponse.

Cordialement,

Onafe57.

Bonjour,

De mon humble avis, l'utilisation d'une fonction recherche (ex. : MATCH en VBA) sur une table 2 triée sur une clé "Personne&Objet" devrait déjà réduire fortement les temps de calcul.

C'est une première proposition, et il y a probablement mieux vu les experts présents sur ce forum.

Pourriez-vous fournir un fichier exemple représentatif en matière de lignes sur vos 2 tables ?

A vous lire

re,

avec un dictionaire, cela fonctionnera plus vite

une solution avec des formules en colonne F

16essai-2.xlsm (33.59 Ko)
Rechercher des sujets similaires à "optimiser macro temps calcul tres long"