Bonjour xorsankukai,
Merci beaucoup pour ce script complet, ça fonctionne bien comme il faut.
Moi j'étais plutôt parti sur ça :
Sub test()
Dim tb, i%, douleur, siège, x&
Application.ScreenUpdating = False
x = 2
Do While x <= Range("A" & Rows.Count).End(xlUp).Row
tb = Split(Range("B" & x), "|")
For i = LBound(tb) To UBound(tb)
On Error Resume Next
If InStr(1, tb(i), "(", vbTextCompare) > 0 And InStr(1, tb(i), ")", vbTextCompare) > 0 Then
douleur = douleur & Left(Trim(tb(i)), InStr(Trim(tb(i)), "(") - 1) & Chr(10)
siège = siège & Replace(Replace(Mid(Trim(tb(i)), InStr(Trim(tb(i)), "("), Len(Trim(tb(i)))) & Chr(10), "(", ""), ")", "")
Else
douleur = douleur & tb(i) & Chr(10)
siège = siège & ""
End If
Next i
Range("C" & x) = douleur: Range("D" & x) = siège
Erase tb: douleur = Nothing: siège = Nothing
x = x + 1
Loop
End Sub
Cependant je me retrouvais avec un espace/retour à la ligne à la fin que j'ai du mal enlever .
Bien cordialement,
ss1021