![]() |
learning event procedures
apologise for asking trivial question.
I have gone through the various instructions in the NG and other pages by MVPs. still there are many doubts. this may be a trivial example Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If Application.EnableEvents = True End Sub why does the change of cells not fire the event procedure. where is my mistake. If I want to debug at what line should I introduce a breakpoint.(I learnt it should be inthe first execuable statement) when I use the if statment as for example if target.value 4 etc the event procedure is fired of course in standard module it works. thanks and regarads. |
learning event procedures
The procedure works for me - XL2000, winXP.
Mike F "R.VENKATARAMAN" $$$ wrote in message ... apologise for asking trivial question. I have gone through the various instructions in the NG and other pages by MVPs. still there are many doubts. this may be a trivial example Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If Application.EnableEvents = True End Sub why does the change of cells not fire the event procedure. where is my mistake. If I want to debug at what line should I introduce a breakpoint.(I learnt it should be inthe first execuable statement) when I use the if statment as for example if target.value 4 etc the event procedure is fired of course in standard module it works. thanks and regarads. |
learning event procedures
Did you put the code in a worksheet module? It won't fire unless it is in
such a module. -- HTH Bob Phillips "R.VENKATARAMAN" $$$ wrote in message ... apologise for asking trivial question. I have gone through the various instructions in the NG and other pages by MVPs. still there are many doubts. this may be a trivial example Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If Application.EnableEvents = True End Sub why does the change of cells not fire the event procedure. where is my mistake. If I want to debug at what line should I introduce a breakpoint.(I learnt it should be inthe first execuable statement) when I use the if statment as for example if target.value 4 etc the event procedure is fired of course in standard module it works. thanks and regarads. |
learning event procedures
There is a good chance in your testing, you experience an error in the event
procedure. At that point, you had Application.EnableEvents = False so when the error stopped execution, the events were never turned back on. Put in a sub in a general module Sub SetEventsON() Application.EnableEvents = True End Sub then you can turn events back on if you start having problems. Also, when testing you can put a msgbox command as the first line. Then if the problem is really a poorly written If statement, you will still know your event is firing. Private Sub Worksheet_SelectionChange(ByVal Target As Range) msgbox "In SelectionChange, Target: " & Target.Address(0,0) 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If Application.EnableEvents = True End Sub Once you get through debugging your event, you can use error trapping to try to ensure events are always enabled: Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error goto ErrHandler 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If ErrHandler: Application.EnableEvents = True End Sub -- Regards, Tom Ogilvy "R.VENKATARAMAN" $$$ wrote in message ... apologise for asking trivial question. I have gone through the various instructions in the NG and other pages by MVPs. still there are many doubts. this may be a trivial example Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If Application.EnableEvents = True End Sub why does the change of cells not fire the event procedure. where is my mistake. If I want to debug at what line should I introduce a breakpoint.(I learnt it should be inthe first execuable statement) when I use the if statment as for example if target.value 4 etc the event procedure is fired of course in standard module it works. thanks and regarads. |
learning event procedures
thank all of you MVPs for giving me some idea. I would test the seteventson
sub for debugging. In the meanwhile I found my mistake. I did go the worksheet code by rightclicking sheet tab and clicking view code. therein I must have forgotten to click the worksheet and the code statements were wrongly originally parked under <general. when I cut and paste the statements under worksheet it works fine. sorry for the trouble. I was misled because the stataements were threre both under general and worksheet. for debugging I will follow the seteventon sub given by Mr. Togilvy;. I got some(only some) of the cobwebs cleared. I am still on learning curve thanks and regarads. Tom Ogilvy wrote in message ... There is a good chance in your testing, you experience an error in the event procedure. At that point, you had Application.EnableEvents = False so when the error stopped execution, the events were never turned back on. Put in a sub in a general module Sub SetEventsON() Application.EnableEvents = True End Sub then you can turn events back on if you start having problems. Also, when testing you can put a msgbox command as the first line. Then if the problem is really a poorly written If statement, you will still know your event is firing. Private Sub Worksheet_SelectionChange(ByVal Target As Range) msgbox "In SelectionChange, Target: " & Target.Address(0,0) 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If Application.EnableEvents = True End Sub Once you get through debugging your event, you can use error trapping to try to ensure events are always enabled: Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error goto ErrHandler 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If ErrHandler: Application.EnableEvents = True End Sub -- Regards, Tom Ogilvy "R.VENKATARAMAN" $$$ wrote in message ... apologise for asking trivial question. I have gone through the various instructions in the NG and other pages by MVPs. still there are many doubts. this may be a trivial example Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'comment-some cells are in bold font Application.EnableEvents = False If Target.Font.Bold = True Then Range("a20").Clear Range("a20") = 12345 Else Range("a20").Clear End If Application.EnableEvents = True End Sub why does the change of cells not fire the event procedure. where is my mistake. If I want to debug at what line should I introduce a breakpoint.(I learnt it should be inthe first execuable statement) when I use the if statment as for example if target.value 4 etc the event procedure is fired of course in standard module it works. thanks and regarads. |
All times are GMT +1. The time now is 04:21 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com