Bonjour,

Je vous propose un petit code simple qui me rend pas mal de services pour traiter le texte des cellules.
La fonction Convertir intégrée dans Excel est utile mais elle est limité soit par une largeur fixe soit par un caractère unique ce qui peut nécéssiter plusieurs itérations fastidieuses.
La macro proposée permet de scinder une ou plusieurs cellules sans aucune contrainte en définissant simplement la syntaxe à utiliser sous la forme :
...Chaine1*chaine2*Chaine3*...

Les étoilres (*) correspondent au contenu à placer dans les cellules.
Exemple :
Si le contenu des cellules est de ce type :
Nom : Dupont - Eric / Tél : 0612345678

Il suffit de rentrer dans la boite de dialogue "Nom : * - * / Tél : *"
Pour trouver respectivement dans les 3 cellules adjacentes "Dupont", "Eric" & "0612345678"
Utiliser ** permet de décaler le contenu d'une cellule vers la droite...
N'hésiter pas si vous avez des questions...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub Conversion()
 
 ChaineFiltre = InputBox("Chaîne", "Conversion  avancée")
 ChaineFiltre = "*" & Replace(ChaineFiltre, "**", "*¤*") & "*"
 ChaineFiltre = Replace(ChaineFiltre, "**", "*")
 
Sep = Split(ChaineFiltre, "*")
 
m = UBound(Sep)
 
For Each CL In Selection
    Txt = CL.Value
    R = CL.Row
    C = CL.Column
    j = 0
    While Columns(C + j + 1).Hidden
        j = j + 1
    Wend
    For i = 1 To m
        n = InStr(1, Txt, Sep(i))
        If n > 0 Then
            Cells(R, C + j + i).Value = Left(Txt, n - 1)
            Txt = Mid(Txt, n + Len(Sep(i)))
        End If
    Next i
    Cells(R, C + j + m).Value = Txt
    If R > ActiveSheet.UsedRange.Rows.Count Then Exit For
 
Next CL
End Sub