1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Option Explicit
Public Sub SeparationEnLignes()
Dim feuilleSource As Worksheet
Dim feuilleCible As Worksheet
Dim iSource, iCible, i As Integer
Dim currentA, currentB As String
Dim currentSplit() As String
Set feuilleSource = Worksheets("Feuil1") 'A modifier, la feuille contenant les données originales
Set feuilleCible = Worksheets("Feuil2") 'A modifier, la feuille où l'on veut le résultat
'Initialisation des compteurs de lignes
iSource = 1
iCible = 1
Do While feuilleSource.Cells(iSource, "A").Value <> "" 'Tant qu'il y a qq chose en colonne A
currentA = feuilleSource.Cells(iSource, "A").Value
currentB = feuilleSource.Cells(iSource, "B").Value
'On décompose la chaine par les virgules
currentSplit = Split(currentB, ",")
'Pour chaque élément, on l'écrit dans la feuille cible
For i = 0 To UBound(currentSplit)
feuilleCible.Cells(iCible, "A").Value = currentA
feuilleCible.Cells(iCible, "B").Value = LTrim(currentSplit(i)) 'En enlevant les espaces à gauche
iCible = iCible + 1
Next i
iSource = iSource + 1
Loop
End Sub |
Partager