View Full Version : Combine Data in Mutiple Columns into Rows
maytey
01-29-2018, 08:11 PM
My file has multiple columns (Attached is only a sample) and I want to convert the data from column c onwards into the rows.
21478
The results will be as follows:
21479
Can someone please help me with a VBA macro to combine the multiple cloumn data? THanks Much!
georgiboy
01-30-2018, 03:13 AM
Maybe something like:
Sub ReOrder()
Dim rCell As Range, x As Long, endCol As Long
Dim endRow As Long, newRow As Long
endRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row ' set your end row of data
endCol = Range("AU:AU").Column ' set your end column of data
newRow = 2 ' first row of sheet 2
With Sheet2
For x = 1 To endCol - 2
For Each rCell In Sheet1.Range("B2:B" & endRow).Cells
.Cells(newRow, 1).Value = rCell.Offset(, -1).Value
.Cells(newRow, 2).Value = rCell.Value
.Cells(newRow, 3).Value = rCell.Offset(, x).Value
.Cells(newRow, 4).Value = Sheet1.Cells(1, rCell.Offset(, x).Column).Value
newRow = newRow + 1
Next rCell
Next x
End With
End Sub
It restructures the data onto sheet2
Hope this helps
Option Explicit
Sub test()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim r As Range
Dim i As Long
Dim n As Long
Set ws1 = Worksheets("Sept-P2")
Set ws2 = Worksheets("Combined")
Set r = ws1.Cells(1).CurrentRegion
Set r = Intersect(r, r.Offset(1))
n = r.Rows.Count
ws1.Cells(1).Resize(, 2).Copy ws2.Cells(1)
For i = 3 To r.Columns.Count
With ws2.Cells(Rows.Count, "a").End(xlUp)
r.Columns("a:b").Copy .Offset(1)
r.Columns(i).Copy .Offset(1, 2)
r.Columns(i).Cells(0).Copy .Offset(1, 3).Resize(n)
End With
Next
End Sub
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.