Bonjour à tous,
J'ai une macro à faire relativement classique et je me pose des questions sur la méthode à employer.
Je dispose d'un tableau avec une vingtaine de colonnes correspondant à des critères et plusieurs centaines de lignes correspondant à des entrées.
Je dois effectuer plusieurs tris sur les données et sortir les tableaux des évènements correspondants dans plusieurs feuilles de calculs. (juste que là assez classique)
Un des critères est une date propre à chaque entrée, hors dans la majorité de mes tris, je ne prend que les entrées qui datent des X derniers jours (ce qui retire pas mal d'enregistrement).
En raison du nombre élevé d'éléments et par soucis d'optimisation, je souhaite donc trouver une manière de retirer d'abord les éléments qui n'ont pas la bonne date car cela retire environ 90% des données pour ensuite appliquer les critères plus spécifiques.
Comment faire ?
1°/ Je charge mes données dans un array à 2 dimensions.
Avec une boucle sur la colonne de date des éléments, je copie dans un nouveau tableau les éléments qui vont bien (et je continue à trier sur ce nouveau tableau)
2°/ Je charge mes données dans un array à 2 dimensions.
Puis je charge les index des éléments dans une collection, Je boucle sur le tableau et à chaque fois qu'un élèment ne convient pas, je retire son index de la collection ( et je trie en bouclant sur les index de la collection )
3°/ Je charge mes données dans un array à 2 dimensions.
Je met tous mes critères dans une grosse condition et je passe une seule fois sur chaque ligne ( par exemple, date < 10 jours & lieu = paris & pièce = moteur & note = 4 ). Le problème c'est que pour chaque feuille de calcul ou les critères diffèrent je dois repasser sur toutes les lignes alors que le critère date est tout le temps date < 10 jours ( par exemple, date < 10 jours & lieu = marseille & pièce = vitre )
Quelle est la méthode la plus rapide ? ( si il y en a d'autres je serais ravi de les connaître, je ne suis pas du tout habitué au VBA :p)
J'espère avoir été le plus clair possible, ce n'est pas évident ^^
Bonne journée :p
Partager