Suppression des caractères dans une cellules

baarar97 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Mon problème est de supprimer les points dans une cellule mais à condition, si un point se trouve dans le début de la cellule ou à la fin de la cellule ainsi que si deux point ou trois... points sont consécutifs je dois les supprimer et laisser qu'un seul point.
Exemple:
Dans une cellule A1 j'ai cette chaîne de caractère:
. E0R . . . JA0 . . FMT . . . . JD1 . E0P . . . FI3 .
je voudrais qu'elle devienne:
E0R . JAO . FMT . JD1 . E0P . FI3
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Tu peux faire du replace

Sub unpointcesttout()
Dim str As String
str = Range("A1").Value

'On supprime les espaces à la fin et au début de la chaine
str = Trim(str)

' Points sans espaces
str = Replace(str, "......", ".")
str = Replace(str, ".....", ".")
str = Replace(str, "....", ".")
str = Replace(str, "...", ".")
str = Replace(str, "..", ".")

'Points avec espaces
str = Replace(str, ". . . . . .", ".")
str = Replace(str, ". . . . .", ".")
str = Replace(str, ". . . .", ".")
str = Replace(str, ". . .", ".")
str = Replace(str, ". .", ".")

If Left(str, 1) = "." Then str = Right(str, Len(str) - 1)
If Right(str, 1) = "." Then str = Left(str, Len(str) - 1)

Range("A1").Value = str


End Sub



0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour le Fil,
Bonjour Jordane,

Une autre possibilité :
Sub Test()
Dim str As String
  str = Range("A1").Value
  str = Replace(str, ".", " ")
  str = Application.WorksheetFunction.Trim(str)
  str = Replace(str, " ", " . ")      'ou str = Replace(str, " ", ".")
  Range("A1").Value = str
End Sub

0