Macro pour filtrer

Bonjour à tous,

J'ai une macro ci-dessous qui me permet de filtrer deux colonnes dans un tableau :

Sub Filtre()

'Filtrer en supprimant les valeurs inutiles
'Boucle partant de la fin remontant jusqu'à la huitième ligne
For i = Range("A40000").End(xlUp).Row To 8 Step -1
'Conditions
If Cells(i, 4) <> "00" And Cells(i, 4) <> 11 And Cells(i, 4) <> 12 And Cells(i, 4) <> 21 _
And Cells(i, 4) <> 22 And Cells(i, 4) <> 23 And Cells(i, 4) <> 24 _
And Cells(i, 4) <> 81 And Cells(i, 4) <> 82 And Cells(i, 4) <> 83 And Cells(i, 4) <> 89 _
Or Cells(i, 14) <> "Meuble" And Cells(i, 14) <> "Buffet" _
And Cells(i, 14) <> "Tiroir" And Cells(i, 14) <> "Placard" Then Rows(i).Delete
Next i

End Sub

Le fichier change tout les jours, et le problème c'est que j'ai énormément de lignes dans ce tableau. Donc ma macro prend beaucoup de temps à s’exécuter, étant donné qu'avec des "If", la macro traite toutes les lignes.

Je pourrais filtrer manuellement, mais je ne suis pas le seul à utiliser le fichier, donc pour éviter les erreurs de manipulations, je voudrais seulement appuyer sur un bouton. Avez-vous des idées pour optimiser la macro ?

Je vous laisse le fichier en PJ. En vous remerciant.

7test-filtre.zip (387.00 Ko)

Bonjour Avbr12,

Avec cette solution, on passe de 2minutes a 2 secondes.

Plutot que de supprimer des milliers de lignes, on conserve celles qui nous interesse , on les colle dans une nouvelle feuille et on supprime la feuille originale.

Bcp plus rapide

Cdlt

Rechercher des sujets similaires à "macro filtrer"