Sub Bouton1_Clic()
Dim DL%, L%, i%, j%, Tablo, T, Tsplit1, Tsplit2
DL = [B10000].End(xlUp).Row ' Dernière ligne ou mettre la dernière ligne désirée
Tablo = Range("B1:B" & DL) ' Plage dans array
ReDim T(1 To UBound(Tablo), 1 To 100) ' T : array de sortie
L = 1 ' Init 1ere ligne écriture en sortie
For i = 1 To UBound(Tablo)
If Tablo(i, 1) <> "" Then
If Tablo(i, 1) Like "*:*" And Tablo(i, 1) Like "*-*" Then ' La chaine doit contenir ":" et "-"
Tsplit1 = Split(Tablo(i, 1), ":") ' Découpage avec séparateur ":"
T(L, 1) = Tsplit1(0) ' rangement du produit
Tsplit2 = Split(Tsplit1(1), " - ") ' Découpage avec séparateur " - "
For j = 0 To UBound(Tsplit2) ' Rangement des nombres
T(L, j + 2) = Tsplit2(j)
Next j
L = L + 1 ' Prochaine ligne
End If
End If
Next i
'Restitution
[D:ZZ].ClearContents
Application.ScreenUpdating = False
[D3].Resize(UBound(T, 1), UBound(T, 2)) = T ' Array de sortie dans cellules
End Sub