Suppression des caractères dans une cellules

baarar97 Messages postés 4 Statut Membre -  
Patrice33740 Messages postés 8400 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

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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