Spression des espaces au coeur de la cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marmotte18

XLDnaute Impliqué
Bonjour,


Je souhaiterai supprimer (hors macro) :
  • tous les espaces qui se trouvent devant la donnée
  • tous les espaces qui se trouvent derrière la donnée
et à l'intérieur de la cellule, remplacer les espaces multiples par un espace unique.

Exemple :

"
Code:
"   Je        mange        du     pain     "

devrait me ramener :

Code:
"Je mange du pain"

NB : je me suis fabriqué une fonction qui remplit cette fonctionnalité

Code:
Public Function OteEspaceMultiple(TexteAnalysé) As String
'Supprime les espaces multiples ainsi que tous les espaces au début et fin du texte
'----------------------------------------------------------------------------------
If VarType(TexteAnalysé) <> vbString Then OteEspaceMultiple = "": _
Exit Function
Dim Position As Byte, LongueurOrigine As Byte
Position = 0
LongueurOrigine = Len(TexteAnalysé)
TexteAnalysé = Trim(TexteAnalysé)
Do Until Position = LongueurOrigine
   Position = Position + 1
 
   If Mid(TexteAnalysé, Position, 1) = " " Then
      If Position + 1 <= Len(TexteAnalysé) Then
         If Mid(TexteAnalysé, Position + 1, 1) = " " Then
            TexteAnalysé = Left(TexteAnalysé, Position) & _
            Right(TexteAnalysé, Len(TexteAnalysé) - Position - 1)
            Position = Position - 1
         End If
      End If
   End If
Loop
OteEspaceMultiple = TexteAnalysé
End Function

Merci par avance
 
Dernière édition:
Re : Spression des espaces au coeur de la cellule

Bonjour,

La fonction SUPPRESPACE devrait faire ce que tu souhaites.

Elle supprime les espaces de début et fin de chaine ainsi que des multi-espaces qui sont remplacés par des espaces simples.

@+
 
Re : Spression des espaces au coeur de la cellule

Bonjour Tibo,

Effectivement ! En plus, je connais fort bien cette commande.

En fait j'ai mal exposé mon problème. En VBA, quel est l'équivalent de "SUPPRESPACE" ?

Il existe bien TRIM, LTRIM et RTRIM mais cela ne s'occupe que de la périphérie de la donnée !

Merci quand même d'avoir répondu correctement à mon problème mal exposé.
 
Re : Spression des espaces au coeur de la cellule

Bonjour marmotte18, Tibo 🙂,
Si notre ami marmotte veut conserver les guillemets, les espaces se trouvant à coté ne sont pas supprimés avec SUPPRESPACE...
Dans ce cas:
Code:
=REMPLACER(REMPLACER(SUPPRESPACE(A1);2;1;"");NBCAR(REMPLACER(SUPPRESPACE(A1);2;1;""))-1;1;"")
 
Re : Spression des espaces au coeur de la cellule

re,

" et ' sont considérés comme des es caractères et il est donc normal que la fonction SUPPRESPACE laisse un espace de chaque côté de ces caractères.

S'il faut supprimer ces caractères, une solution :

Code:
=SUPPRESPACE(SUBSTITUE(SUBSTITUE(A1;"""";"");"'";""))

@+
 
Re : Spression des espaces au coeur de la cellule

Merci Tibo pour cette information complémentaire.

J'avais compris que SUPPRESPACE n'enlève aucun caractère derrière les apostrophes ' ou ". Ce qui n'est pas le cas puisqu'il en laisse 1. Cela me convient très bien ainsi.

Néanmoins, je te remercie pour cette formule !

Je considère la discussion close. MERCI à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour