Ads 468x60px

Sunday, July 15, 2012

VBA Move data from one sheet to multiple sheets

VBA Move data from one sheet to multiple sheets:
This is a guest post by Vijay, our in-house VBA Expert.
Suresh sent an email with interesting problem.
There is one data entry sheet where all the data needs will be entered, however once done we want the data to be stored separately in multiple sheets designated by the Employee code.
In this article we will learn how to use VBA to help in resolving the problem Suresh was facing at work.

We will do this using VBA and the below procedure illustrates how this was done.



Sub copyPasteData()

Dim strSourceSheet As String

Dim strDestinationSheet As String

Dim lastRow As Long

strSourceSheet = "Data entry"
Sheets(strSourceSheet).Visible = True

Sheets(strSourceSheet).Select

Range("C2").Select

Do While ActiveCell.Value <> ""

strDestinationSheet = ActiveCell.Value

ActiveCell.Offset(0, -2).Resize(1, ActiveCell.CurrentRegion.Columns.Count).Select

Selection.Copy

Sheets(strDestinationSheet).Visible = True

Sheets(strDestinationSheet).Select

lastRow = LastRowInOneColumn("A")

Cells(lastRow + 1, 1).Select

Selection.PasteSpecial xlPasteValues

Application.CutCopyMode = False

Sheets(strSourceSheet).Select

ActiveCell.Offset(0, 2).Select

ActiveCell.Offset(1, 0).Select

Loop

End Sub

Let’s understand the code

We start by defining 2 variables which will hold the Source and destinations sheet names, source will be one sheet only however there will be multiple destinations sheets.
A simple Do While loop is utilized to complete this data transfer from one sheet to the others.
However the most interesting line in the code is :



ActiveCell.Offset(0, -2).Resize(1, ActiveCell.CurrentRegion.Columns.Count).Select



Since we start our work on Column C in the loop, we need to ensure the data from Column A and B is also selected to be copied and pasted on the relevant sheets, this is accomplished using the above line.
Once we have selected the entire data set on the current row, we copy the same and select the relevant sheet and then paste the data as values on the same.
At the end of the code once we switch back to the Source sheet, we need to ensure that we select Column C again. The reason for that is, when we select the entire data set we activate the first column and we need to come back to column C for our loop and the rest of the code to work.

Download Excel File

Click here to download the file & save it on your system and use it to understand this technique.

More on VBA & Macros

If you want to learn more about using VBA to automate reporting & email tasks, read these:

Join our VBA Classes

If you want to learn how to develop applications like these and more, please consider joining our VBA Classes. It is a step-by-step program designed to teach you all concepts of VBA so that you can automate & simplify your work.
Click here to learn more about VBA Classes & join us.

0 comments:

Post a Comment