Update data when new data is entered in a rage of cells

Copper Contributor

Is there a way to update data on a different sheet (like a dashboard) only when new data is entered in a different sheet - and only display the new data.  For example in sheet 2 I have a row of names and then a new dollar amount is entered next to their name, on sheet 1 I only want to display their name and the dollar amount when the dollar amount is updated.  Only one will update at a time so I only want to display one name and dollar amount at a time when it updates on sheet 2.  

Thanks.

6 Replies

@rwagner34  This can be done using a macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim dashUpdate As Range
Set dashUpdate = ThisWorkbook.Sheets("Dashboard sheet").Range("5:5")
    If Intersect(Target, Range("G:G")) Is Nothing Then
    Else
        Target.EntireRow.Copy dashUpdate
    End If

End Sub

This macro must be on the sheet object where the data will be updated

"Dashboard sheet" needs to be the name of the sheet where the row will be copied to 

and change "5:5" to the row where you want that row copied to

and change "G:G" to the column that matches the column with dollars that if updated you want copied.

 

 

@mtarler 

Thank you!

I am getting an error from the first line - below.  I did update the other data, should "Worksheet_Change" be something else?  Under the screen shot is the Marco.  

rwagner34_0-1615899513178.png

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim dashUpdate As Range
Set dashUpdate = ThisWorkbook.Sheets("Dashboard").Range("$A$6")
If Intersect(Target, Range("$B$4:$B$101")) Is Nothing Then
Else
Target.EntireRow.Copy dashUpdate
End If

End Sub

 

@rwagner34 so in the VBA editor you need to open the code page for the specific Sheet.  And then in that window select Worksheet from the left drop down and the right will likely auto populate with SelectionChange but otherwise select that:

mtarler_0-1615903192987.png

If you pasted that Sub into workbook or a module or something, yeah it won't understand.

Thank you! I got it to work!

@mtarler Is there a way for this to work if I am linking the changed cell to another worksheet?  It does not seem to update the dashboard when the data changes in the cell that is pointing to another excel file.

In the cell that is changing:

='[rotation schedule.xlsx]Monday 1A'!$G$2

I have the code below on the worksheet, if I manually change the field it appears on the Dashboard, but it does not when I link it like above and the data changes.  The field that is changing is in D2

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim dashUpdate As Range
Set dashUpdate = ThisWorkbook.Sheets("Dashboard").Range("$A$6")
If Intersect(Target, Range("$A$2:$D$47")) Is Nothing Then
Else
Target.EntireRow.Copy dashUpdate
End If

End Sub

 

That is correct since the contents of the cell haven't changed only the value being displayed is changing. There is a legacy functionality that has to do with track changes that might be useful for this but I'm not going to go there. Instead, you would need to create a mirrored sheet and track those cells of interest on every _CALCULATE and if a change is detected you can copy the row and update the value onto the mirrored/storage sheet. That said, what will you do if more than 1 value changes? Technically this could be a concern on the _change function also.