This is a super simple example, I placed a button on my "old workbook" and when clicked it opens the "new workbook" and loops through the data in each. If a match between old and new is found then it copies the data from old to new and then marks the row in new with an X (so you can see which have been modified) when it is finished it brings the "new workbook" to the forefront so that you can manually check it.
the code:
Here is what my spreadsheets look likeDim newWorkBookFile As String Dim newWB As Workbook Dim newWBSheet As Worksheet Dim oldWBSheet As Worksheet Dim oldWBDataStartingRow As Long Dim newWBDataRow As Long Dim oldWBCurrentRow As Long Dim newWBFoundMatchingDescRow As Long Dim oldWBLastRow As Long Dim oldWBCurrentDesc As String Dim newWBCurrentDesc As String newWorkBookFile = "C:\Users\jd310\Documents\NewProjects.xlsx" Set oldWBSheet = ThisWorkbook.ActiveSheet Set newWB = Workbooks.Open(newWorkBookFile) Set newWBSheet = newWB.Sheets("Sheet1") oldWBDataStartingRow = 2 ' find the last row with data in the old workbook in column A oldWBLastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).row ' loop through the rows in the current worksheet (old workbook) ' use the description column information ' and compare it to the description column in the new workbook ' if it is found then copy the data in cols C - F ' to the new workbook row For oldWBCurrentRow = oldWBDataStartingRow To oldWBLastRow ' the description to compare is found in column B oldWBCurrentDesc = oldWBSheet.Cells(oldWBCurrentRow, 2) newWBCurrentDesc = " " ' set this to 1 space so the Do loop starts newWBDataRow = 2 ' what row to start searching in the new workbook ' now loop through the new wookbook to see if this description is found ' stop when there is nothing contained in the description cell Do While Len(newWBCurrentDesc) > 0 newWBCurrentDesc = newWBSheet.Cells(newWBDataRow, 2) If oldWBCurrentDesc = newWBCurrentDesc Then ' found the description, now copy the information over to the new workbook newWBSheet.Cells(newWBDataRow, 3).Value = oldWBSheet.Cells(oldWBCurrentRow, 3).Value newWBSheet.Cells(newWBDataRow, 4).Value = oldWBSheet.Cells(oldWBCurrentRow, 4).Value newWBSheet.Cells(newWBDataRow, 5).Value = oldWBSheet.Cells(oldWBCurrentRow, 5).Value newWBSheet.Cells(newWBDataRow, 6).Value = oldWBSheet.Cells(oldWBCurrentRow, 6).Value ' mark the row in the new wookbook as updated so you know which rows to manually check newWBSheet.Cells(newWBDataRow, 7).Value = "X" Exit Do ' once a match is found there is no need to keep looking in the new workbook End If newWBDataRow = newWBDataRow + 1 Loop Next oldWBCurrentRow ' show the new workbook so it can be manually checked newWB.Activate




Reply With Quote
