Forum Discussion
TeivaC
Nov 20, 2023Copper Contributor
VBA for transposing some data to a new sheet
Hi everyone, I'm a total beginner in VBA and am trying to transpose some data from one sheet to another. I have different items in column B, with corresponding quantities and sizes in column O ...
- Nov 21, 2023
A variant:
Sub DuplicateProductsForSizes() Dim SourceSheet As Worksheet Dim TargetSheet As Worksheet Dim SourceRange As Range Dim TargetRange As Range Dim SourceRow As Range Dim ProductRange As Range Dim SizeColumn As Long Dim Size As Variant Application.ScreenUpdating = False Set SourceSheet = ThisWorkbook.Sheets("BL") On Error Resume Next Set TargetSheet = ThisWorkbook.Worksheets("Receiving BL") On Error GoTo 0 If TargetSheet Is Nothing Then Set TargetSheet = ThisWorkbook.Sheets.Add TargetSheet.Name = "Receiving BL" Else TargetSheet.UsedRange.Clear End If Set TargetRange = TargetSheet.Range("A1") SourceSheet.Range("A7:F7").Copy TargetRange.Resize(1, 6) TargetSheet.Range("G1:H1").Value = Array("Size", "Qty") Set TargetRange = TargetSheet.Range("A2") Set SourceRange = SourceSheet.Range("A8") Do While SourceRange.Value <> 0 Set ProductRange = SourceRange.Resize(1, 6) For SizeColumn = 15 To 21 ' O to U Size = SourceRange.Offset(0, SizeColumn - 1) If Size <> 0 Then ProductRange.Copy TargetRange.Resize(1, 6) TargetRange.Offset(0, 6).Value = SourceSheet.Cells(7, SizeColumn).Value TargetRange.Offset(0, 7).Value = Size Set TargetRange = TargetRange.Offset(1, 0) End If Next SizeColumn Set SourceRange = SourceRange.Offset(1, 0) Loop TargetSheet.Range(TargetSheet.Range("F1"), TargetRange.Offset(-1, 5)).Copy TargetSheet.Range(TargetSheet.Range("G1"), TargetRange.Offset(-1, 7)).PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub
Riny_van_Eekelen
Nov 21, 2023Platinum Contributor
TeivaC I'd suggest you learn Power Query in stead. This is a 2 step process and is achieved by clicking in the user interface only.
Google for "Unpivot columns Power Query" and you'll find many resources leading you from start to finish. No coding skills required.
The attached file contains data that I copied from your screenshot (Data, From Picture) and the unpivoted result in a separate sheet.
TeivaC
Nov 21, 2023Copper Contributor
Thank you Riny. I'll look into that too.