Bonjour saboh12617 ,
Par contre c'est marrant je m'attendais à ce que la méthode de Range.Autofilter soit plus rapide et il n'en est rien, sur de grands tableaux il vaut mieux boucler. Intéressant.
Si visuellement le filtrage fait apparaitre un seul bloc, il n'en est rien dans la réalité. La plage filtrée est malgré tout fragmentée et Excel doit supprimer les lignes une à une (peut-être qu'en fait, il supprime les lignes plutôt sous-plage par sous-plage - je vérifierai dès que le temps m'en laissera le temps ). En tout cas la plage à supprimer est loin d'être contigüe.
La méthode avec une colonne auxiliaire consiste à mettre dans cette colonne une valeur sélectionnable par SpecialCells(). Personnellement si la condition de suppression n'est pas vérifiée, j'y place le numéro de ligne et si la condition de suppression est vérifiée, j'y met vide ("") ou #N/A.
Le tri ensuite des données sources sur cette colonne assure que les lignes à supprimer sont réunies en un seul bloc. La sélection par SpecialCells() n' a qu'une seule plage contigüe à supprimer et ça c'est très rapide car il n'y a qu'une unique interaction de suppression (et donc de décalage de ligne) au sein de la feuille de calcul.
Le prix à payer est un code un peu plus long et complexe à écrire