Effacer les espaces

Doom76

XLDnaute Nouveau
Bonjour à tous,

J'ai un joli tableau dans lequel figure sur plusieurs feuilles des noms et prénoms de personnes. Je calcule leurs occurences. Or, parfois, il y a un espace vide devant le prénom ou bien à la fin du nom. Du coup, la personne n'est pas reconnue.

Quel type de macro je pourrais faire afin qu'automatiquement les espaces avant le prénom et les espaces après le nom s'effacent?

Par exemple: ".Jean.Dupont." (l'espace est ici remplacé par un ".")
devrait être remplacé par: "Jean.Dupont"

La difficulté réside dans le fait qu'il faut maintenir l'espace entre "Jean" et "Dupont". En outre, cette correction devrait se faire sur toute les feuilles.

Merci d'avance!
 

JNP

XLDnaute Barbatruc
Re : Effacer les espaces

Bonjour Doom76, Roger2327 :),
Par macro après sélection des cellules concernées :
Code:
Sub Suppression()
Dim Cellule As Range
For Each Cellule In Selection
Cellule = Trim(Cellule)
Next
End Sub
Bonne journée :cool:
 

Doom76

XLDnaute Nouveau
Re : Effacer les espaces

Merci à tous les deux!

@ ROGER2327,
Je vais étudier cette fonction que je ne connaissais pas...

@JNP,

c'est pas mal du tout mais il n'y aurait pas moyen de faire en sorte que la suppression des blancs ne se fasse que dans les cellules non vides? En effet je sélectionne la feuille entière et avec ta macro, je dois l'interrompre manuellement pour la débloquer.
Est-il possible de le faire pour tous les onglets en même temps?

Merci encore!
 

job75

XLDnaute Barbatruc
Re : Effacer les espaces

Bonjour Doom, Roger, JNP,

JNP n'est pas dans le coin semble-t-il.

Il faut en effet se limiter aux cellules contenant du texte :

Code:
Sub Suppression()
Dim Cellule As Range
On Error Resume Next 'au cas où aucune cellule ne contient du texte
For Each Cellule In Selection.[COLOR="Red"]SpecialCells(xlCellTypeConstants, 2)[/COLOR]
Cellule = Trim(Cellule)
Next
End Sub

Edit : pour toutes les cellules de tous les onglets :

Code:
Sub Suppression()
Dim w As Worksheet, Cellule As Range
On Error Resume Next
For Each w In Worksheets
For Each Cellule In w.Cells.SpecialCells(xlCellTypeConstants, 2)
Cellule = Trim(Cellule)
Next
Next
End Sub

A+
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Effacer les espaces

Re :),
Merci Job75, j'étais au boulot... De plus, je n'ai jamais utilisé cette option, donc j'apprends :eek:... Je ne pensais pas non plus que notre ami avait 2 millions de cellules à traiter :D.
Bonne soirée :cool:
 

Discussions similaires

Réponses
7
Affichages
574