Chaine de caractères

bonjour,

Dans un fichier contenant beaucoup données je souhaite supprimer par macro tout ce qui commence par "H"suivi de 3 chiffres et ":"

exemple "H317: " devient ""

seconde difficulté, parfois la chaine est ainsi décomposé H302 + H312 + H332:

et si on peut supprimer également c'est le top...

5test-yoda.xlsm (9.09 Ko)

merci d'avance

Bonjour Yoda60

Voici une possibilité en travaillant directement sur les cellules

Sub SuprHxxx()
  Dim dLig As Long, Lig As Long
  Dim TabTxt As Variant
  Dim Ind As Integer
  Dim sTmp As String, sResult As String
  ' Avec la feuille active
  With ActiveSheet
    ' Dernière ligne remplie de la colonne
    dLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne
    For Lig = 1 To dLig
     ' si la cellule est vide, on passe
      If .Range("A" & Lig) = "" Then GoTo SuiteLig
      ' Initialiser le résultat
      sResult = ""
      ' créer le tableau des éléments séparés
      TabTxt = Split(.Range("A" & Lig), "|")
      ' Pour cahque éléments
      For Ind = 0 To UBound(TabTxt)
        ' récupérer le texte qui se trouve après les :
        If Ind = 0 Then
          ' Si 1er élément on supprimer les espaces début/fin
          sTmp = Trim(Mid(TabTxt(Ind), InStr(1, TabTxt(Ind), ":") + 1))
        Else
          sTmp = Mid(TabTxt(Ind), InStr(1, TabTxt(Ind), ":") + 1)
        End If
        ' Concaténer les éléments pour le résultat
        sResult = sResult & sTmp
      Next Ind
      ' Si résultat est vide = 1 seul élément
      If sResult = "" Then
        sResult = Trim(Mid(TabTxt(Ind), InStr(1, TabTxt(Ind), ":") + 1))
      End If
      ' Inscrire le résultat dans la colonne B
      .Range("B" & Lig) = sResult
SuiteLig:
    Next Lig
  End With
End Sub

A+

Bonjour

Ci joint ma solution

6test-yoda.xlsm (15.76 Ko)

A+ François

merci c'est nickel !

Rechercher des sujets similaires à "chaine caracteres"