Tu utilises une façon longue et compliquée d'adresser tes cellules.
Au lieu d'utiliser ...
Range(chr(64) + c & l).Select
tu devrais utiliser :
Il y a un appel de procédure, une concaténation et une sélection en moins. Donc, c'est plus rapide, plus concis et plus clair.
Pour régler ton problème de cellule vide, ta réponse se trouve quelque part dans le forum puisqu'elle a été maintes fois demandée.
Mais, pour te faciliter la vie, la voilà:
À l'intérieur de ta boucle du milieu, sors de la procédure si IsEmpty(Cells(l,c).Value) = True.
Je te signale que ta procédure devrait s'appeler 'Effacement' et non 'suppression' puisque tu ne supprimes pas mais tu effaces ta cellule. Pour supprimer, il faut utiliser la méthode Delete de l'objet Range. Si tu fais ça, par contre, tu auras des problèmes dès que tu auras supprimé la première cellule puisque tes indices ne fonctionneront plus. La solution dans ce cas est d'itérer à rebours, en partant de la dernière cellule...
Partager