Bonsoir à tous,
Une autre façon de procéder :
Option Explicit
Sub test()
Dim a, b(), i As Long, n As Long, e, flag As Boolean
With Sheets("origine").Range("a1").CurrentRegion
a = .Value
'attention à la 1ère dimension
ReDim b(1 To 100, 1 To UBound(a, 2))
n = 1
b(n, 1) = a(1, 1)
b(n, 2) = a(1, 2)
b(n, 3) = a(1, 3)
For i = 2 To UBound(a, 1)
flag = False
For Each e In Split(Trim(a(i, 3)))
n = n + 1
If flag = False Then
b(n, 1) = a(i, 1)
b(n, 2) = a(i, 2)
End If
b(n, 3) = Trim(e)
flag = True
Next
Next
With .Offset(, .Columns.Count + 1)
.CurrentRegion.ClearContents
.Resize(n, UBound(a, 2)).Value = b
End With
End With
End Sub
klin89