Sub splitderLig_2()
Dim separ$, j&, derligne&, T, i&, k&, vide As Boolean
'recherche n° dernière ligne des colonnes 2 à 4 pour effacement
derligne = 2
For j = 2 To 4
i = Cells(Rows.Count, j).End(xlUp).Row
derligne = IIf(i > derligne, i, derligne)
Next j
Range("b2:d" & derligne).ClearContents
'dernière ligne des données de la colonne A
derligne = Range("A" & Rows.Count).End(xlUp).Row
If derligne = 1 Then Exit Sub
' acquisition séparateur et veut-on remplir les cellules vides ?
separ = InputBox("Entrez le séparateur SVP" & vbCrLf _
& "(pour remplir les colonnes suivantes)", "NomDeLafenêtre", "/")
vide = MsgBox("Remplir les cellules vides ?", vbQuestion + vbYesNo + vbDefaultButton1) = vbYes
Application.ScreenUpdating = False
'remplissage des lignes
For i = 2 To derligne
T = Split(Cells(i, "a"), separ)
'copier valeurs de T sur la ligne i
For j = 0 To UBound(T): Cells(i, "b").Offset(, j) = Trim(T(j)): Next j
'compléter les cellules vides avec la dernière valeur de T
If vide And j > 0 Then
For k = j To 2: Cells(i, "b").Offset(, k) = Trim(T(j - 1)): Next k
End If
Next i
End Sub