Bonjour,
Une piste à adapter et à exécuter après importation de ton csv :
Sub Test()
Dim Plage As Range
Dim Cel As Range
Dim Tbl() As String
Dim T
Dim I As Long
Dim J As Integer
'défini la plage sur la colonne C de la feuille active à partir de C2
With ActiveSheet: Set Plage = .Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp)): End With
For Each Cel In Plage
T = Split(Cel.Value, ",")
If UBound(T) > 0 Then
For J = 0 To UBound(T)
I = I + 1: ReDim Preserve Tbl(1 To 3, 1 To I)
Tbl(1, I) = Cel.Offset(, -2).Value
Tbl(2, I) = Cel.Offset(, -1).Value
Tbl(3, I) = T(J)
Next J
Else
I = I + 1: ReDim Preserve Tbl(1 To 3, 1 To I)
Tbl(1, I) = Cel.Offset(, -2).Value
Tbl(2, I) = Cel.Offset(, -1).Value
Tbl(3, I) = Cel.Value
End If
Next Cel
'colle le tableau en colonne G à partir de G2
Range(Cells(2, 7), Cells(UBound(Tbl, 2) + 1, 6 + UBound(Tbl, 1))).Value = Application.Transpose(Tbl)
End Sub