Rendre une macro plus rapide (sans les .Select)

Bonjour,

Je voudrais trier des valeurs par ordre alphabétique et cacher les lignes dont la valeur en D = ""

Voici mon code :

Range("D4:D300").Select

For Each cellule In Selection

If cellule.Value = "" Then cellule.EntireRow.Hidden = True

Next cellule

Il n'y aurait pas un moyen de gagner en rapidité. Je sais que la fonction .Select prend beaucoup de temps du fait qu'il sélectionne chaque cellule une à une.

Merci d'avance pour toute aide.

Je suis sûr que c'est simple mais personnellement je ne vois pas comment faire..

Cordialement

Bonjour,

là non car il y a une unique sélection !

Sinon envisager un filtre …

En effet, commencer par un tri pour ne pas cacher les cellules vides une par une mais toutes en même temps. Ce n'est pas le fait de vérifier les cellules une à une qui prend du temps mais celui de les cacher.

ps -

Application.ScreenUpdating = False à mettre en debut de code

Application.ScreenUpdating = True à mettre en fin de code

Merci à vous deux pour vos réponses,

Je dois admettre que je n'avais pas pensé à la fonction filtre : je viens de l'effectuer et effectivement c'est un gain de temps considérable.

Sujet résolu.

Merci encore.

Cordialement

Sur les grosses bases de données, le filtre est très puissant. Tu fais ton test pour chaque nouvelle valeur (dans une colonne que tu as précédemment triée) et tu incrémentes ton résultat sur toutes les cellules identiques qui suivent (grâce au filtre) ce qui permet de travailler sur des zones et non cellule par cellule. Couplé avec une var tableau,.... on tombe dans des traitements en instantané.

Rechercher des sujets similaires à "rendre macro rapide select"