Worksheet_Change More than 1on the same tab

wlbamc

Board Regular
Joined
Apr 19, 2016
Messages
99
Office Version
  1. 2016
Hi

I have 2 VBA codes, one to stop copy and paste over validated cells and the other to move a line to another tab when picked from dropdown list, is there any way of having them on the same tab

VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xValue As String
    Dim xCheck1 As String
    Dim xCheck2 As String
    If Target.Count > 1 Then
        Exit Sub
        End If
        Application.EnableEvents = False
        xValue = Target.Value
        On Error Resume Next
        xCheck1 = Target.Validation.InCellDropdown
        On Error GoTo 0
        Application.Undo
        On Error Resume Next
        xCheck2 = Target.Validation.InCellDropdown
        On Error GoTo 0
        If xCheck1 = xCheck2 Then
            Target = xValue
        Else
            MsgBox "No pasting allowed!"
        End If
        Application.EnableEvents = True
    End Sub

VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    If Intersect(Target, Range("AJ:AJ")) Is Nothing Then Exit Sub
    On Error GoTo endit
    Application.EnableEvents = False
    If Target.Value = "Deceased" Then
        Target.EntireRow.Copy Worksheets("Deceased").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
    ElseIf Target.Value = "Stopped Funding" Then
        Target.EntireRow.Copy Worksheets("No Longer Funded").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
    ElseIf Target.Value = "Change of Care Package" Then
        Target.EntireRow.Copy Worksheets("Change of Care Package").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
End If
endit:
     Application.EnableEvents = True
     Application.ScreenUpdating = True

Many thanks
 

Excel Facts

Waterfall charts in Excel?
Office 365 customers have access to Waterfall charts since late 2016. They were added to Excel 2019.
try this:
VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xValue As String
    Dim xCheck1 As String
    Dim xCheck2 As String
    If Target.Count = 1 Then
        Application.EnableEvents = False
        xValue = Target.Value
        On Error Resume Next
        xCheck1 = Target.Validation.InCellDropdown
        On Error GoTo 0
        Application.Undo
        On Error Resume Next
        xCheck2 = Target.Validation.InCellDropdown
        On Error GoTo 0
        If xCheck1 = xCheck2 Then
            Target = xValue
        Else
            MsgBox "No pasting allowed!"
        End If
        Application.EnableEvents = True
    End If
    If Intersect(Target, Range("AJ:AJ")) Is Nothing Then Exit Sub
    On Error GoTo endit
    Application.ScreenUpdating = False  'moved to prevent exiting sub with screenupdating turned off
    Application.EnableEvents = False
    If Target.Value = "Deceased" Then
        Target.EntireRow.Copy Worksheets("Deceased").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
    ElseIf Target.Value = "Stopped Funding" Then
        Target.EntireRow.Copy Worksheets("No Longer Funded").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
    ElseIf Target.Value = "Change of Care Package" Then
        Target.EntireRow.Copy Worksheets("Change of Care Package").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
End If
endit:
     Application.EnableEvents = True
     Application.ScreenUpdating = True
    
    End Sub
 
Upvote 0
Solution
T
try this:
VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xValue As String
    Dim xCheck1 As String
    Dim xCheck2 As String
    If Target.Count = 1 Then
        Application.EnableEvents = False
        xValue = Target.Value
        On Error Resume Next
        xCheck1 = Target.Validation.InCellDropdown
        On Error GoTo 0
        Application.Undo
        On Error Resume Next
        xCheck2 = Target.Validation.InCellDropdown
        On Error GoTo 0
        If xCheck1 = xCheck2 Then
            Target = xValue
        Else
            MsgBox "No pasting allowed!"
        End If
        Application.EnableEvents = True
    End If
    If Intersect(Target, Range("AJ:AJ")) Is Nothing Then Exit Sub
    On Error GoTo endit
    Application.ScreenUpdating = False  'moved to prevent exiting sub with screenupdating turned off
    Application.EnableEvents = False
    If Target.Value = "Deceased" Then
        Target.EntireRow.Copy Worksheets("Deceased").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
    ElseIf Target.Value = "Stopped Funding" Then
        Target.EntireRow.Copy Worksheets("No Longer Funded").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
    ElseIf Target.Value = "Change of Care Package" Then
        Target.EntireRow.Copy Worksheets("Change of Care Package").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Target.EntireRow.Delete
End If
endit:
     Application.EnableEvents = True
     Application.ScreenUpdating = True
   
    End Sub
That works perfectly, thank you so much
 
Upvote 0

Forum statistics

Threads
1,223,912
Messages
6,175,340
Members
452,637
Latest member
Ezio2866

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top