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









share|improve this question
























  • 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

















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









share|improve this question
























  • 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















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









share|improve this question















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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




















  • 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



















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















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






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

Calculate evaluation metrics using cross_val_predict sklearn

Insert data from modal to MySQL (multiple modal on website)