Bonsoir,
Essayez ceci:
Sub Mise_en_forme()
Dim Liste_1, Liste_2
Dim i As Long, DerLig_1 As Long, DerLig_2 As Long
Application.ScreenUpdating = False
DerLig_1 = Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To DerLig_1
Liste_1 = Split(Range("B" & i), "-")
Range("E" & i).Resize(, UBound(Liste_1) + 1).Value = Liste_1
Next i
DerLig_2 = Range("C" & Rows.Count).End(xlUp).Row
For i = 2 To DerLig_1
Liste_2 = Split(Range("C" & i), "-")
Range("N" & i).Resize(, UBound(Liste_2) + 1).Value = Liste_2
Next i
End Sub
ou plus court:
Sub Mise_en_forme()
Dim i As Long, DerLig As Long
Application.ScreenUpdating = False
DerLig = Range("B" & Rows.Count).End(xlUp).Row
ReDim Liste(DerLig, 3)
For j = 2 To 3
For i = 2 To DerLig
Liste(i, j) = Split(Cells(i, j), "-")
If j = 2 Then Col = 5 Else: Col = 14
Cells(i, Col).Resize(, UBound(Liste(i, j)) + 1).Value = Liste(i, j)
Next i
Next j
End Sub
A noter que c'est faisable sans VBA, en utilisant "Convertir"
Cdlt