Code to move rows into another sheet based on certain values

Solved/Closed
nathaliecannell - Mar 15, 2017 at 04:25 PM
vcoolio Posts 1404 Registration date Thursday July 24, 2014 Status Moderator Last seen September 15, 2023 - Mar 17, 2017 at 08:02 AM
I'm having trouble figuring out how to do something! I have a sheet (Sheet1) with customer details on it (columns A-D will have data in). I want to be able to write "Cancelled" in column E of the row in particular if the customer's contract has been cancelled and this cause the entire row to be cut and pasted into Sheet2 which will be for cancelled customers with the same column headers etc.

How do I do this? I'm not very good with Macro codes & where to input them!
Related:

1 response

vcoolio Posts 1404 Registration date Thursday July 24, 2014 Status Moderator Last seen September 15, 2023 259
Mar 17, 2017 at 08:02 AM
Hello Nathaliecannell,

You could try the following code:-


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
If Target.Value = vbNullString Then Exit Sub
If Intersect(Target, Columns("E:E")) Is Nothing Then Exit Sub

Application.ScreenUpdating = False

        If Target.Value = "Cancelled" Then
        Target.EntireRow.Copy Sheet2.Range("A" & Rows.Count).End(3)(2)
        Target.EntireRow.Delete
        End If
  
Sheet2.Columns.AutoFit

Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub


The code is a Worksheet_Change event and needs to be placed in the Worksheet (Sheet1) module. Once "Cancelled" is typed into a cell in Column E of Sheet1 and you click away (or press Enter or down arrow), the relevant row of data will be transferred to Sheet2 and the row will be deleted from Sheet1.

To implement the code, right click on the Sheet1 tab and select "View Code" from the menu that appears. In the big white field that then appears, paste the above code.

Test the code in a copy of your work book first.

I hope that this helps.

Cheerio,
vcoolio.
4