Supprimer des Cellules dans excel et déplacer le contenu vers le haut en fonction de la valeur

J'ai un peu de code de travail afin de condenser plusieurs colonnes dans excel, en supprimant toutes les cellules vides et en déviant les données vers le haut.

Chaque cellule contient des formules, j'en ai trouvé un extrait de code qui me laisser utiliser un specialcells de commande, mais qui ne disparaît vraiment cellules vides et non à ceux qui contenait une formule, où le résultat serait de faire de la cellule vide.

C'est ce que je suis en train de l'aide, qui a été une modification de quelque chose que j'ai trouvé sur ce site il y a un moment:

Sub condensey()
Dim c As Range
Dim SrchRng

Set SrchRng = ActiveSheet.Range("B2", ActiveSheet.Range("B208").End(xlUp))
Do
    Set c = SrchRng.Find("", LookIn:=xlValues)
    If Not c Is Nothing Then c.Delete
Loop While Not c Is Nothing
End Sub

J'ai essayé d'augmenter la plage de la feuille active pour inclure une deuxième colonne, mais excel va juste les noix, en supposant qu'il est en train de le faire pour chaque cellule dans l'ensemble de la table.

J'ai ensuite repris ce morceau de code pour chaque colonne que je veux afin de condenser la matière.

Maintenant c'est grand, c'est exactement ce que je veux faire, mais il est lent comme n'importe quoi, surtout quand chaque colonne peut contenir jusqu'à plus de 200 lignes. Toutes les idées sur la façon d'améliorer les performances de cela, ou peut-être le ré-écrire en utilisant une autre méthode?

  • Avez-vous éteint screenupdating et jeu de calcul manuel?