Dummy Excel
Well-known Member
- Joined
- Sep 21, 2005
- Messages
- 1,004
- Office Version
-
- 2019
- 2010
- 2007
- Platform
-
- Windows
hi all,
I put together the below code to transpose data from spreadsheets. It works ok for what I am, a novice at VB
. This code worked fine as all the spreadsheets I used this for had all the same amount of columns, although now my spreadsheets have different amounts of columns which causes problems, ie sometimes there are up 60 columns.
Is there a way that I can adopt my original code, or is it easier with new code?
Additional info...
Column A = partnumber
Row 1 = store numbers
hope that is clear enough...
thanks
Sam
I put together the below code to transpose data from spreadsheets. It works ok for what I am, a novice at VB
Is there a way that I can adopt my original code, or is it easier with new code?
Code:
Sub Transpose_Data()
'
' This macro is to create Lowes range plan in a template
'
'aw = raw data
'nw = updated raw data
'Copy first APN
cnum = Range("A1").CurrentRegion.Columns.Count
For i = 1 To cnum
aw = ActiveSheet.Name
Range([A2], [A2].End(xlDown)).Offset(0, 0).Copy
If i = 1 Then
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
nw = ActiveSheet.Name
Else
Sheets(nw).Select
Range("A1").End(xlDown).Offset(1, 0).PasteSpecial
End If
Sheets(aw).Select
If i = 1 Then
Range("B1").Copy
Sheets(nw).Select
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 2 Then
Range("c1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 3 Then
Range("D1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 4 Then
Range("E1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 5 Then
Range("F1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 6 Then
Range("G1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 7 Then
Range("H1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 8 Then
Range("I1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 9 Then
Range("J1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 10 Then
Range("K1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 11 Then
Range("L1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 12 Then
Range("M1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 13 Then
Range("N1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 14 Then
Range("O1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 15 Then
Range("P1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 16 Then
Range("Q1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 17 Then
Range("R1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
Else
If i = 18 Then
Range("S1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
If i = 19 Then
Range("T1").Copy
Sheets(nw).Select
Range("b1").End(xlDown).Offset(1, 0).PasteSpecial
Range("b1").End(xlDown).Offset(0, 0).Copy
Range("A1").End(xlDown).Offset(0, 1).Activate
Range(Selection, Selection.End(xlUp)).PasteSpecial
Sheets(aw).Select
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
If i = 1 Then
Range([B2], [B2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").PasteSpecial
Else
If i = 2 Then
Range([C2], [C2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 3 Then
Range([D2], [D2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 4 Then
Range([E2], [E2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 5 Then
Range([F2], [F2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 6 Then
Range([G2], [G2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 7 Then
Range([H2], [H2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 8 Then
Range([I2], [I2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 9 Then
Range([J2], [J2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 10 Then
Range([K2], [K2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 11 Then
Range([L2], [L2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 12 Then
Range([M2], [M2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 13 Then
Range([N2], [N2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 14 Then
Range([O2], [O2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 15 Then
Range([P2], [P2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 16 Then
Range([Q2], [Q2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 17 Then
Range([R2], [R2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 18 Then
Range([S2], [S2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
Else
If i = 19 Then
Range([T2], [T2].End(xlDown)).Offset(0, 0).Copy
Sheets(nw).Select
Range("C1").End(xlDown).Offset(1, 0).PasteSpecial
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Sheets(aw).Select
If cnum - 1 = i Then GoTo FINISH
Next i
FINISH:
Application.CutCopyMode = False
End Sub
Column A = partnumber
Row 1 = store numbers
hope that is clear enough...
thanks
Sam