Supprimer les espaces fin de cellule dans une colonnes dans une feuille

Bonjour à tous,

Je travaille avec un fichier Excel qui possède 13 Feuilles.

Parmi ces 13 feuilles, il y en a une dont je dois nettoyer la colonne. En effet, certaines cellules de cette colonne sont polluées par des espaces en fin de suite de mots. Je cherche donc une macro qui ne laverai que cette colonne de cette feuille.

J'ai utilisé le code suivant hier, mais après une heure de lancement de macro j'ai fermé Excel. Je pense que le code balayait toute mes feuilles. Hors il me faut juste en nettoyer une:

Sub SupprimeEspace()
For Each C In [D1:D20000]
C.Value = Application.Trim(C.Value)
Next
End Sub

Quelqu'un peut me dire comment faire pour mieux cibler ma zone s'il vous plaît?

Bien cordialement,

Bonjour

Tester 20000 cellules peut prendre un peu de temps mais 1h, cela me semble beaucoup.

Essaie quand même ça :

Sub SupprimeEspace()
    For Each C In Range("D1:D" & Range("D" & Rows.Count).End(xlUp).Row)
        C.Value = Trim(C.Value)
    Next
End Sub

Bye !

Je vais essayer, merci.

Du coup, je n'ai pas besoin de nommer la feuille dans laquelle la formule doit travailler?

Bonjour

Dans la mesure où tu ne précises pas la feuille concernée (ce qui est une mauvaise pratique), cela s'applique sur la feuille active

Inutile de faire une boucle

Sub SupprimeEspace()
    Worksheets("Nom feuille").Range("D1:D20000").Value = Application.Trim(Worksheets("Nom feuille").Range("D1:D20000"))
End Sub

Il peut être utile de calculer la plage exacte plutôt que 20000 lignes...

Merci à vous deux pour vos réponses.

Petite dernière question: Que veut dire : "For Each C In Range" et "Trim" dans le code?

Bien cordialement,

RE

La touche F1 est ton amie

For ... next est une boucle qui va traiter cellule par cellule ce qui prends du temps et est ici complétement inutile puisque Application.Trim peut s'appliquer à une plage

Trim nettoie les espaces de début et fin de chaîne

Rechercher des sujets similaires à "supprimer espaces fin colonnes feuille"