I've got a workbook called MyBook1 which has 12 groups of 5 columns representing each calendar month. I am looking to create a macro (one for each month) which will be executed from another workbook. This macro will pull a column of data from a workbook called Data1 and paste into a row in the MyBook1 workbook.
Using the macro recorder, I've got the following code that works great but was trying to shorten the code and get it to work from another workbook but haven't been successful. I believe all that needs to be done is create a variable for the source/destination workbooks then set the selections and do the copy/paste but I'm having a hard time finding example macros which I can learn from.
Working code below for January, for Febuary the Data1 range is D2:D6, and the destination is 5 columns over making it M3. Then just follow the code below as a template.
Sub GetJanuaryData()
'Start
Application.ScreenUpdating = False ' turn off the screen updating
Windows("MyBook1.xlsm").Activate
Windows("Data1.xls").Activate
Range("C2:C6").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H3:H3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C7:C11").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H10:H10").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C12:C16").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H20:H20").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C17:C21").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H25:H25").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C22:C26").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H27:H27").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C27:C31").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H39:H39").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C32:C36").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H44:H44").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C37:C41").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H55:H55").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C42:C46").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H68:H68").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C47:C48").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H71:H71").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'Next row.
Windows("Data1.xls").Activate
Range("C49:C53").Select
Selection.Copy
Windows("MyBook1.xlsm").Activate
Range("H73:H73").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Selection(1).Select
Application.CutCopyMode = False
End Sub
Bookmarks