Rendre ma macro plus rapide

Bonjour à tous,

Alors voilà j'ai réalisé une macro qui consiste majoritairement à filtrer des colonnes et à supprimer le contenu filtré.

Les tableaux font en moyenne 25000 lignes pour 50 colonnes et je fais face à un léger problème qui est que ma macro (que je ne peux d'ailleurs pas vous envoyer) met plus de 5 minutes à se réaliser.

Je suppose le fait que cela est du aux suppressions de lignes. En effet, en reproduisant ce que fait ma macro manuellement, mon Excel ralentit salement (voir plante) lorsque je supprime les lignes filtrées (peut aller jusqu'à 7000 lignes supprimées d'un coup). Est-ce peut-être du au fait que le contenu supprimé est gardé quelque part en arrière plan et prend de la place ?

Auriez-vous peut-être une solution pour améliorer cela ? Non parce que... bon je suis pas un expert de Excel mais j'ai naturellement tendance à me dire que supprimer des lignes ne devrait normalement pas prendre de temps !!

Merci par avance et bonne journée.

Bonjour,

l'idéal est souvent un filtre avancé regroupant les critères afin d'effectuer une suppression globale unique …

Sinon en l'état actuel, si la feuille de calculs contient des formules ou des MFC,

mieux vaut penser à désactiver le calcul automatique ainsi que l'affichage !

Bonjour,

Merci pour votre réponse. Oui en effet je n'y avais pas pensé... Mais ce que je ne comprends pas, c'est que quand je le fais manuellement, bah plus j'avance dans la suppression de lignes, plus mon excel devient lent (jusqu'au plantage), comme si il saturait. Genre au premier filtrage puis suppression tout va bien et après 2 3 fois la même opération ca va plus...

Ca prouve bien qu'il y a quelque chose qu'il garde en mémoire ou du genre non ?

Merci par avance et bonne journée

Et ? …

Bonjour,

Quel est le souci de nous faire parvenir ton code, à défaut d'un fichier exemple représentatif de tes données?

Cdlt.

Essaie ça...

'Supprime l'update de la fenetre le temps de l'application de la macro. A placer en début de macro

Application.ScreenUpdating = False

' ta macro

'puis juste avant le dernier End placer cela.

Application.ScreenUpdating =True

Bonjour à tous,

Merci pour vos réponses. Le ScreenUpdating je l'ai déjà.

Mais c'est pas grave. En fait je me suis rendu compte d'un truc entre temps et finalement c'est assez rapide.

Bonne journée !

Rechercher des sujets similaires à "rendre macro rapide"