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+