How do I merge two subs with Private Sub Worksheet_Change on sheet, which have different triggers
up vote
0
down vote
favorite
I have 2 private sub worksheet_change subs that need to be on the same sheet and can't work out how to combine them. Very new to this whole vba game and both subs I have found on various websites. Any help would be greatly appreciated. The 2 pieces of code are below. One gets the time a cell changes and the other dispalys a message box when another cell changes (Have updated since first post. Both are worksheet_change subs
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rCell As Range
Dim rChange As Range
On Error GoTo ErrHandler
Set rChange = Intersect(Target, Range("A:A"))
If Not rChange Is Nothing Then
Application.EnableEvents = False
For Each rCell In rChange
If rCell > "" Then
With rCell.Offset(0, 1)
.Value = Now
.NumberFormat = "hh:mm:ss"
End With
Else
rCell.Offset(0, 1).Clear
End If
Next
End If
ExitHandler:
Set rCell = Nothing
Set rChange = Nothing
Application.EnableEvents = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
And second one is
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then
MsgBox "Broadcast Now!"
End If
End Sub
excel vba
add a comment |
up vote
0
down vote
favorite
I have 2 private sub worksheet_change subs that need to be on the same sheet and can't work out how to combine them. Very new to this whole vba game and both subs I have found on various websites. Any help would be greatly appreciated. The 2 pieces of code are below. One gets the time a cell changes and the other dispalys a message box when another cell changes (Have updated since first post. Both are worksheet_change subs
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rCell As Range
Dim rChange As Range
On Error GoTo ErrHandler
Set rChange = Intersect(Target, Range("A:A"))
If Not rChange Is Nothing Then
Application.EnableEvents = False
For Each rCell In rChange
If rCell > "" Then
With rCell.Offset(0, 1)
.Value = Now
.NumberFormat = "hh:mm:ss"
End With
Else
rCell.Offset(0, 1).Clear
End If
Next
End If
ExitHandler:
Set rCell = Nothing
Set rChange = Nothing
Application.EnableEvents = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
And second one is
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then
MsgBox "Broadcast Now!"
End If
End Sub
excel vba
I am not sure to follow, there is no apparent reason to why you would want to merge these procedures as they are triggered by different events. If it is just a mater of which sheet they need to work with, just paste these codes in the sheet code you want. You'll have to give more details about your overall objective if you want more help.
– O.PAL
Nov 22 at 2:39
Sorry, had changed the second one and not noticed should be the following as the one I originally posted does not work. Assuming it is because it is looking at the result of a formula, will work if I manually change it
– Pete
Nov 22 at 4:08
Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then MsgBox "Broadcast Now!" End If End Sub
– Pete
Nov 22 at 4:09
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have 2 private sub worksheet_change subs that need to be on the same sheet and can't work out how to combine them. Very new to this whole vba game and both subs I have found on various websites. Any help would be greatly appreciated. The 2 pieces of code are below. One gets the time a cell changes and the other dispalys a message box when another cell changes (Have updated since first post. Both are worksheet_change subs
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rCell As Range
Dim rChange As Range
On Error GoTo ErrHandler
Set rChange = Intersect(Target, Range("A:A"))
If Not rChange Is Nothing Then
Application.EnableEvents = False
For Each rCell In rChange
If rCell > "" Then
With rCell.Offset(0, 1)
.Value = Now
.NumberFormat = "hh:mm:ss"
End With
Else
rCell.Offset(0, 1).Clear
End If
Next
End If
ExitHandler:
Set rCell = Nothing
Set rChange = Nothing
Application.EnableEvents = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
And second one is
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then
MsgBox "Broadcast Now!"
End If
End Sub
excel vba
I have 2 private sub worksheet_change subs that need to be on the same sheet and can't work out how to combine them. Very new to this whole vba game and both subs I have found on various websites. Any help would be greatly appreciated. The 2 pieces of code are below. One gets the time a cell changes and the other dispalys a message box when another cell changes (Have updated since first post. Both are worksheet_change subs
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rCell As Range
Dim rChange As Range
On Error GoTo ErrHandler
Set rChange = Intersect(Target, Range("A:A"))
If Not rChange Is Nothing Then
Application.EnableEvents = False
For Each rCell In rChange
If rCell > "" Then
With rCell.Offset(0, 1)
.Value = Now
.NumberFormat = "hh:mm:ss"
End With
Else
rCell.Offset(0, 1).Clear
End If
Next
End If
ExitHandler:
Set rCell = Nothing
Set rChange = Nothing
Application.EnableEvents = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
And second one is
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then
MsgBox "Broadcast Now!"
End If
End Sub
excel vba
excel vba
edited Nov 22 at 4:32
asked Nov 22 at 2:27
Pete
12
12
I am not sure to follow, there is no apparent reason to why you would want to merge these procedures as they are triggered by different events. If it is just a mater of which sheet they need to work with, just paste these codes in the sheet code you want. You'll have to give more details about your overall objective if you want more help.
– O.PAL
Nov 22 at 2:39
Sorry, had changed the second one and not noticed should be the following as the one I originally posted does not work. Assuming it is because it is looking at the result of a formula, will work if I manually change it
– Pete
Nov 22 at 4:08
Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then MsgBox "Broadcast Now!" End If End Sub
– Pete
Nov 22 at 4:09
add a comment |
I am not sure to follow, there is no apparent reason to why you would want to merge these procedures as they are triggered by different events. If it is just a mater of which sheet they need to work with, just paste these codes in the sheet code you want. You'll have to give more details about your overall objective if you want more help.
– O.PAL
Nov 22 at 2:39
Sorry, had changed the second one and not noticed should be the following as the one I originally posted does not work. Assuming it is because it is looking at the result of a formula, will work if I manually change it
– Pete
Nov 22 at 4:08
Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then MsgBox "Broadcast Now!" End If End Sub
– Pete
Nov 22 at 4:09
I am not sure to follow, there is no apparent reason to why you would want to merge these procedures as they are triggered by different events. If it is just a mater of which sheet they need to work with, just paste these codes in the sheet code you want. You'll have to give more details about your overall objective if you want more help.
– O.PAL
Nov 22 at 2:39
I am not sure to follow, there is no apparent reason to why you would want to merge these procedures as they are triggered by different events. If it is just a mater of which sheet they need to work with, just paste these codes in the sheet code you want. You'll have to give more details about your overall objective if you want more help.
– O.PAL
Nov 22 at 2:39
Sorry, had changed the second one and not noticed should be the following as the one I originally posted does not work. Assuming it is because it is looking at the result of a formula, will work if I manually change it
– Pete
Nov 22 at 4:08
Sorry, had changed the second one and not noticed should be the following as the one I originally posted does not work. Assuming it is because it is looking at the result of a formula, will work if I manually change it
– Pete
Nov 22 at 4:08
Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then MsgBox "Broadcast Now!" End If End Sub
– Pete
Nov 22 at 4:09
Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then MsgBox "Broadcast Now!" End If End Sub
– Pete
Nov 22 at 4:09
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53423060%2fhow-do-i-merge-two-subs-with-private-sub-worksheet-change-on-sheet-which-have-d%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I am not sure to follow, there is no apparent reason to why you would want to merge these procedures as they are triggered by different events. If it is just a mater of which sheet they need to work with, just paste these codes in the sheet code you want. You'll have to give more details about your overall objective if you want more help.
– O.PAL
Nov 22 at 2:39
Sorry, had changed the second one and not noticed should be the following as the one I originally posted does not work. Assuming it is because it is looking at the result of a formula, will work if I manually change it
– Pete
Nov 22 at 4:08
Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Range("AH4"), Target) Is Nothing) Then MsgBox "Broadcast Now!" End If End Sub
– Pete
Nov 22 at 4:09