XL 2016 L'enteur de l'exécution d'une macro avec 2 boucles for

moseca80

XLDnaute Nouveau
Bonjour chers Experts

Problème principal: l'exécution de ma macro est trop lente, alors que j'ai 2 boucles for imbriquées qui peuvent parcourir près de 100 000 lignes chacune, et au total 100 millions de cellules à tester. Je pense qu'on pourrait écrire le code autrement

Ci-dessous, une brève explication de ce que fait la macro (son objectif):

La macro calcule l'accumulation de véhicule dans un stationnement pour une période données et le mettre dans la colonne O, 15e colonnes du fichier ci-joint.
Pour cela, je compare la date d'entrée (colonne I) et la date de sortie (colonne J) d'un véhicule par rapport à la date de la période de calcul (colonne H): si la date de la période est supérieure à la date d'entrée (colonne I) et inférieure à la date de sortie (colonne J), alors le véhicule est dans le stationnement. Alors, pour chaque enregistrement (chaque ligne de la base de données représente un véhicule), la macro compare toutes les dates de la colonne H à la date d'entrée et de sortie du véhicule pour vérifier si ce véhicule est toujours dans le stationnement et elle fait de même pour le second véhicule et ainsi de suite jusqu'au dernier véhicule. NB: j'ai converti les dates en nombre pour faciliter l'exercice de comparaison. l'accumulation signifie en quelque sorte que plusieurs véhicules sont dans le stationnement pour une date donnée.

Si vous n'avez pas trop compris ce que je veux faire avec la macro, vous pouvez tout de même m'aider à reprogrammer la macro pour diminuer considérablement sa durée d'exécution.

J'ai joins le fichier pour que vous puissiez bien comprendre mon problème. Pour simplifier et pouvoir vous envoyer le fichier, je n'ai gardé que 500 lignes au lieu d'environ 100 milles.

Je vous remercie de votre aide!
 

Pièces jointes

  • Calcul_Accumulation_.xlsm
    75.4 KB · Affichages: 2
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @moseca80 , bienvenue sur XLD,

Souvent on peut réduire considérablement les temps d’exécution en triant le fichier (par exemple voiture / date / mouvement). On ne parcourt ainsi qu'une fois le tableau. Essayez cette piste.

nota: je n'ai pas ouvert votre fichier car il n'est pas joint sur XLD.
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Bonsour® moustapha Seck
Bonjour chers Experts

Problème principal: l'exécution de ma macro est trop lente, alors que j'ai 2 boucles for imbriquées qui peuvent parcourir près de 100 000 lignes chacune, et au total 100 millions de cellules à tester. Je pense qu'on pourrait écrire le code autrement

Ci-dessous, une brève explication de ce que fait la macro (son objectif):
../..
../..
Si vous n'avez pas trop compris ce que je veux faire avec la macro, vous pouvez tout de même m'aider à reprogrammer la macro pour diminuer considérablement sa durée d'exécution.
:mad: pas de macro dans le fichier fourni ...
dans l'utilisation des boucles il est fortement recommandé d'éviter l'utilisation de la commande Select ! :cool:
 

Modeste geedee

XLDnaute Barbatruc
Bonjour,

Voici le fichier avec la macro qui s'appelle "Occupation"
Merci!
pas mieux ???
1568916174552.png
 

Discussions similaires

  • Résolu(e)
Microsoft 365 tranche
Réponses
3
Affichages
306
Réponses
4
Affichages
513

Statistiques des forums

Discussions
312 103
Messages
2 085 316
Membres
102 860
dernier inscrit
fredo67