Sometime back, we provided an Excel Macro to compare two excel worksheets and highlight duplicate entries. One of our readers left a comment on this post for us to provide a Macro to copy values from one worksheet to another worksheet based on values matching in one of the columns.
We are re-writing the comment here for our readers to understand the exact requirement. Here it goes:
I have a column with 80 names and in the next 2 columns I have description corresponding to that name.
But now i have another data with same 80 names but the order is shuffled. I want a macro for copy paste the the description corresponding to the name.
eg: column 1 : a ,b ,c ,d ,e
column 2 : This is a , This is b, This is c, This is d, This is eNow my column changed to b ,c , a , e , d
Macro should be for arranging like: This is b , This is c, This is a, This is e, This is d
Now, the good news is that we have a solution to share with you. Below is code for Macro to copy from one worksheet to another worksheet conditionally.
To find out the detailed steps on how to create, run or edit a macro, you may refer here.
Sub Copy_Paste() doIt Worksheets("Sheet1"), Worksheets("Sheet2") End Sub Sub doIt(ws1 As Worksheet, ws2 As Worksheet) Dim data2 As String, data1 As String Dim rowNum1 As Long, rowNum2 As Long Dim colNum1 As Long, colNum2 As Long Dim column1 As Integer, column2 As Integer With ws1.UsedRange rowNum1 = .Rows.Count colNum1 = .Columns.Count End With With ws2.UsedRange rowNum2 = .Rows.Count colNum2 = .Columns.Count End With column1 = 1 column2 = 2 For r2 = 1 To rowNum2 data2 = ws2.Cells(r2, column1).FormulaLocal LFound = False For r1 = 1 To rowNum1 data1 = ws1.Cells(r1, column1).FormulaLocal If data1 = data2 Then For c1 = 2 To colNum1 ws1.Select ws1.Cells(r1, c1).Select Selection.Copy ws2.Select ws2.Cells(r2, c1).Select ActiveSheet.Paste Next c1 Exit For End If Next r1 Next r2 End Sub
Few Points Worth To Note:
- While creating the Macro, ensure that name of the macro is kept as Copy_Paste.
- Worksheet names are considered to be “Sheet1″ and “Sheet2″
- This Macro compare each cell in first column of Sheet 2 with each cell in first column of Sheet 1. Data in all columns of row matched in Sheet1 is copied to corresponding row in Sheet2.
Hope you find this solution useful, your suggestions, feedback and comments are always welcome.
Hey team, Thanks for the effort.
Thanks Ralins for dropping by. You are most welcome. Keep visiting Vertical Horizons…!!
I need a macro that compares one column (C)on sheet1 to column (A) on sheet2 and the copies the entire row from sheet1 to sheet3 and then removes that row from sheet one.
Hi Eric,
Are you still looking for this solution or have you got through it?
Regards
I have slugged through it and come up with a solution that is close enough for what I need.
I need a macro to compare two columns(fname,lname) in sheet2 with the same two columns(fname,lname) in sheet1.if both the column is available in sheet1.Then have to move the corresponding 3rd column value in sheet1 to sheet2
Hi , please look on to the below logic and suggest an example code for the logic
when i give input in a cell in sheet 1 and click on Enter button the value should be taken to sheet2 and copy the value in a cell (A1) in sheet 2
again when i give a value in the same cell in sheet 1 and clik on enter the value should be copied in the cell(a2) in sheet2
Eg
Entering “1″ in A1 cell in Sheet 1
Cliking on enter
“1″ should be copied in A1 cell in sheet 2
Entering “2″ in A1 cell in Sheet1
Cliking on enter
“2″ should be copied in A2 cell in sheet2
So on…… when ever i enter a value in A1 the value should be cut copy pasted in the sheet2 cells one by one