Forum Discussion
Move row to new sheet auto matically when updated as complete
- May 17, 2022
Please find the two codes below, one for Progress Sheet Module and another for Completed Sheet Module. I have tweaked the Progress Sheet Module code a bit so not it will also copy the %Completed column to the Completed Sheet i.e. now it will copy the range A:M instead of A:L.
You will have to follow the same steps I mentioned in my last post to place the codes on both the Sheet Modules.
Progress Sheet Module Code:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.CountLarge > 1 Then Exit Sub Dim wsProgress As Worksheet Dim wsCompleted As Worksheet Dim dlr As Long Dim r As Long Set wsProgress = Worksheets("Progress") Set wsCompleted = Worksheets("Completed") On Error GoTo Skip: If Target.Column = 13 And Target.Row > 2 Then '13 here means Column M which is %Completed Column on Progress Sheet. Change it as per your need Application.EnableEvents = False If Target.Value = 1 Then r = Target.Row dlr = wsCompleted.Cells(Rows.Count, "A").End(xlUp).Row + 1 'Following line will coply the range A:M to the Completed Sheet at the bottom wsProgress.Range("A" & r & ":M" & r).Copy wsCompleted.Range("A" & dlr) wsProgress.Rows(r).Delete End If End If Skip: Application.EnableEvents = True End Sub
Completed Sheet Module Code:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.CountLarge > 1 Then Exit Sub Dim wsProgress As Worksheet Dim wsCompleted As Worksheet Dim dlr As Long Dim r As Long Set wsProgress = Worksheets("Progress") Set wsCompleted = Worksheets("Completed") On Error GoTo Skip: If Target.Column = 13 And Target.Row > 2 Then '13 here means Column M which is %Completed Column on Progress Sheet. Change it as per your need Application.EnableEvents = False If IsNumeric(Target.Value) And Target.Value < 1 Then r = Target.Row dlr = wsProgress.Cells(Rows.Count, "A").End(xlUp).Row + 1 'Following line will copy the range A:M to the Progress Sheet at the bottom wsCompleted.Range("A" & r & ":M" & r).Copy wsProgress.Range("A" & dlr) wsCompleted.Rows(r).Delete End If End If Skip: Application.EnableEvents = True End Sub
Please find the attached with both the codes in place.
I need another favour.
Some times I need to re-open a project that has been completed due to new work.
I will do this by changing the percenage complete from 100% to anything below 100%
Once I have done the change I want the project to automatically goback to the In Progress sheet.
it can add it back at the bottom.
Regards
Please find the two codes below, one for Progress Sheet Module and another for Completed Sheet Module. I have tweaked the Progress Sheet Module code a bit so not it will also copy the %Completed column to the Completed Sheet i.e. now it will copy the range A:M instead of A:L.
You will have to follow the same steps I mentioned in my last post to place the codes on both the Sheet Modules.
Progress Sheet Module Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
Dim wsProgress As Worksheet
Dim wsCompleted As Worksheet
Dim dlr As Long
Dim r As Long
Set wsProgress = Worksheets("Progress")
Set wsCompleted = Worksheets("Completed")
On Error GoTo Skip:
If Target.Column = 13 And Target.Row > 2 Then '13 here means Column M which is %Completed Column on Progress Sheet. Change it as per your need
Application.EnableEvents = False
If Target.Value = 1 Then
r = Target.Row
dlr = wsCompleted.Cells(Rows.Count, "A").End(xlUp).Row + 1
'Following line will coply the range A:M to the Completed Sheet at the bottom
wsProgress.Range("A" & r & ":M" & r).Copy wsCompleted.Range("A" & dlr)
wsProgress.Rows(r).Delete
End If
End If
Skip:
Application.EnableEvents = True
End Sub
Completed Sheet Module Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
Dim wsProgress As Worksheet
Dim wsCompleted As Worksheet
Dim dlr As Long
Dim r As Long
Set wsProgress = Worksheets("Progress")
Set wsCompleted = Worksheets("Completed")
On Error GoTo Skip:
If Target.Column = 13 And Target.Row > 2 Then '13 here means Column M which is %Completed Column on Progress Sheet. Change it as per your need
Application.EnableEvents = False
If IsNumeric(Target.Value) And Target.Value < 1 Then
r = Target.Row
dlr = wsProgress.Cells(Rows.Count, "A").End(xlUp).Row + 1
'Following line will copy the range A:M to the Progress Sheet at the bottom
wsCompleted.Range("A" & r & ":M" & r).Copy wsProgress.Range("A" & dlr)
wsCompleted.Rows(r).Delete
End If
End If
Skip:
Application.EnableEvents = True
End Sub
Please find the attached with both the codes in place.
- Gerdus4May 19, 2022Copper Contributorthank you very much, much appreciated.
quick and easy.
the best assistance I got on this- Subodh_Tiwari_sktneerMay 19, 2022Silver Contributor
You're welcome Gerdus4! Glad I could help.
- Gerdus4May 19, 2022Copper ContributorI have another request 🙂
I want to have like a plus sign to add a new row or something simmular but it needs to add the previous row's formulas, hyper links, formatting etc, without the data.
so a clean new line with formatting and formulas