Suppression des caractères dans une cellules

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

2 réponses

  1. Modérateur
    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
    1. 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