Exécution de différentes boucles lentes (100 000 lignes)

Bonjour,

J'ai un fichier qui possède plus de 100 000 lignes. Sur ce fichier j'effectue 2 "calculs".

Je supprime des lignes qui ne m'intéressent pas et ensuite j'ajoute une colonne pour à partir d'une date "dd/mm/yyyy" obtenir seulement une année "yyyy".

Cependant je trouve que l'exécution est relativement longue, environ 2-3min.

Voici les boucles :

image

Est-il possible d'améliorer les boucles ? Ou bien d'utiliser une autre méthode ?

Merci pour vos réponses :)

Bonjour,

Sans exemple de données c'est pas facie de vous aidez. Sinon Oui par exemple il existe Power Query qui devrait vous faire cela en quelque secondes

bonjour,

c'est un simple autofilter & ajouter une colonne = 2 sec (???)

Savez-vous nous joindre un fichier avec une dizaine de lignes ?

Pour ne conserver que tes lignes pour lesquelles la colonne B est différente de Sheets(1).Range("B7"), tu filtres ton tableau en indiquant "Différent de " cette valeur. puis tu supprimes les lignes qui restent (il faut que tes données soient dans un tableau Excel). Dans la colonne M supplémentaire, tu peux ajouter la formule =ANNEE(cellule de la même ligne colonne N).

D'autre part, tu fais des boucles avec les index i et j mais tu ne les utilises pas dans les boucles. Tu pourrais remplacer "ligneActuelle" par i ou j dans tes boucles.

Enfin, pour améliorer la rapidité des macros, en général, on peut ajouter au début :

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

puis à la fin :

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

ça accélère beaucoup les traitements !

Mes compétences sont très limitées c'est pour cela que je fais appel à vous.

Le filtre est à appliquer sur la colonne A. Si différent de 797193 alors on supprime la ligne. Et pour les années je me bases sur le contenu de la colonne M.

Voici un fichier

Merci

Bonjour Via Power Query

Merci pour cette réponse

Bonjour le fil

@JuSuGar, rappel
Si vous déposez du code, il ne doit pas être mis sur le forum en tant qu'image, mais en tant que texte
De plus il doit être mis entre balises avec le bouton prévu à cet effet

image

Merci d'y faire attention SVP !

Bonjour,

Pardonnez-moi. Merci pour l'information, j'appliquerai les bonnes pratiques pour mes prochaines participations.

Dans le fichier que tu as envoyé (qexcelpratiquepblenteur.xlsm), il n'y a que des lignes à conserver ! J'imagine que ce n'est qu'un extrait. Je vais modifier quelques lignes pour l'adapter.

avec une macro et une plage nommée pour savoir le valeur de filtrage

Merci cela fonctionne très bien avec peu de lignes. Cependant lorsque j'utilise mon fichier complet, Excel m'indique que la mémoire est insuffisante lors du passage sur la ligne Sort.Range

Bonjour Valky68,

Il semble que le critère ne fonctionne pas ? Lorsque j'exécute la macro l'ensemble des lignes disparaissent, est-ce normal ?

Merci

J'avais laissé une petite coquille sur la colonne de l'année mais la suppression des lignes <> 797193 fonctionne pour moi; J'ai corrigé ma coquille dans cette version.

Merci à tous pour votre participation

Re,

bonjour,

la question ressemble résolue, mais autrement une proposition avec VBA, prêt en 6 sec pour 200 000 lignes.

(une macro pour ajouter autant de lignes = "Ajoute1000K" et la macro "Filter_Année" pour le reste)

Choisir un numéro dans la cellule AB1 (ou un décalage, parce qu'on ajoute toujours des colonnes)

Merci beaucoup, effectivement cela fonctionne très bien :)

Rechercher des sujets similaires à "execution differentes boucles lentes 100 000 lignes"