J'essaie de combiner plusieurs lignes de données en une seule. La colonne A contient la valeur sur laquelle les regroupements seront basés. Les lignes dont les valeurs de la colonne A correspondent seront combinées en une seule ligne. Ma plage s'étend de la colonne A à X. J'ai donc besoin d'une ligne de données correspondante qui commence dans la colonne Y.
Ejemplo:
1001 A C
1001 B D
1002 A E
1002 B F
1002 C G
Résultat souhaité :
1001 A C B D
1002 A E B F C G
Le code VBA que j'utilise actuellement ne prend pas tout le contenu de la ligne correspondante. Il prend uniquement les données de la deuxième colonne et les déplace vers le haut.
Code VBA :
Sub Mergeitems()
Dim cl As Range
Dim rw As Range
Set rw = ActiveCell
Do While rw <> ""
' for each row in data set
' find first empty cell on row
Set cl = rw.Offset(0, 1)
Do While cl <> ""
Set cl = cl.Offset(0, 1)
Loop
' if next row needs to be processed...
Do While rw = rw.Offset(1, 0)
cl = rw.Offset(1, 1) ' move the data
Set cl = cl.Offset(0, 1) ' update pointer to next blank cell
rw.Offset(1, 0).EntireRow.Delete xlShiftUp ' delete old data
Loop
' next row
Set rw = rw.Offset(1, 0)
Loop
End Sub