Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 371
Default Class Events not firing

Hi
I have an addin with a class module which sometimes gives problems after
altering code. I find the class events do not fire until I have stepped
through a procedure in the module. Whenever I change the class code I always
compile and save. But once the events begin to fire there are no further
problems in any scenario.
Can anyone throw some light o what is going wrong and how it may be put right?

T.I.A.

Geoff

In ThisWorkBook module:

Dim oAppEvents As CAppEvents
Private Sub Workbook_Open()
Set oAppEvents = New CAppEvents
End Sub

In CAppEvents class module:

Dim WithEvents oApp As Application
Private Sub Class_Initialize()
Set oApp = Application
End Sub
then various events:
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookAddinUninstall(ByVal Wb As Workbook)
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
Private Sub oApp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As
Boolean, Cancel As Boolean)
Private Sub oApp_SheetActivate(ByVal Sh As Object)
Private Sub oApp_WorkbookDeactivate(ByVal Wb As Workbook)
Private Sub oApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default Class Events not firing

Often when you edit code, you reset any objects that may have been created.
You need to rerun the line of code in the Workbook_Open procedure of the
ThisWorkbook module. Maybe put it into a FixMe() sub that you can run to
reset anything else that gets messed up, like the states of ScreenUpdating,
EnableEvents, etc.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Geoff" wrote in message
...
Hi
I have an addin with a class module which sometimes gives problems after
altering code. I find the class events do not fire until I have stepped
through a procedure in the module. Whenever I change the class code I
always
compile and save. But once the events begin to fire there are no further
problems in any scenario.
Can anyone throw some light o what is going wrong and how it may be put
right?

T.I.A.

Geoff

In ThisWorkBook module:

Dim oAppEvents As CAppEvents
Private Sub Workbook_Open()
Set oAppEvents = New CAppEvents
End Sub

In CAppEvents class module:

Dim WithEvents oApp As Application
Private Sub Class_Initialize()
Set oApp = Application
End Sub
then various events:
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookAddinUninstall(ByVal Wb As Workbook)
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As
Boolean)
Private Sub oApp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI
As
Boolean, Cancel As Boolean)
Private Sub oApp_SheetActivate(ByVal Sh As Object)
Private Sub oApp_WorkbookDeactivate(ByVal Wb As Workbook)
Private Sub oApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 371
Default Class Events not firing

If I understand correctly you are suggesting that during development I set
all objects to nothing etc after code changes. I can understand the
reasoning but doesn't the same thing happen if the app is closed and
reopened? There have been times when I have shut the app and reopened but
the problem still persists. Silly as it may seem I have put a MsgBox ""
statement in both the WorkBook_Open event and also the oApp_WorkbookOpen
event in order to step through the code. This works but is obviously not a
practical approach.

Geoff

"Jon Peltier" wrote:

Often when you edit code, you reset any objects that may have been created.
You need to rerun the line of code in the Workbook_Open procedure of the
ThisWorkbook module. Maybe put it into a FixMe() sub that you can run to
reset anything else that gets messed up, like the states of ScreenUpdating,
EnableEvents, etc.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Geoff" wrote in message
...
Hi
I have an addin with a class module which sometimes gives problems after
altering code. I find the class events do not fire until I have stepped
through a procedure in the module. Whenever I change the class code I
always
compile and save. But once the events begin to fire there are no further
problems in any scenario.
Can anyone throw some light o what is going wrong and how it may be put
right?

T.I.A.

Geoff

In ThisWorkBook module:

Dim oAppEvents As CAppEvents
Private Sub Workbook_Open()
Set oAppEvents = New CAppEvents
End Sub

In CAppEvents class module:

Dim WithEvents oApp As Application
Private Sub Class_Initialize()
Set oApp = Application
End Sub
then various events:
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookAddinUninstall(ByVal Wb As Workbook)
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As
Boolean)
Private Sub oApp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI
As
Boolean, Cancel As Boolean)
Private Sub oApp_SheetActivate(ByVal Sh As Object)
Private Sub oApp_WorkbookDeactivate(ByVal Wb As Workbook)
Private Sub oApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,939
Default Class Events not firing

Application.EnableEvents = False

is a persistent setting. Restarting XL does not reset it. Once you turn it
off the only way it is coming back on is if you reset it via code...
--
HTH...

Jim Thomlinson


"Geoff" wrote:

If I understand correctly you are suggesting that during development I set
all objects to nothing etc after code changes. I can understand the
reasoning but doesn't the same thing happen if the app is closed and
reopened? There have been times when I have shut the app and reopened but
the problem still persists. Silly as it may seem I have put a MsgBox ""
statement in both the WorkBook_Open event and also the oApp_WorkbookOpen
event in order to step through the code. This works but is obviously not a
practical approach.

Geoff

"Jon Peltier" wrote:

Often when you edit code, you reset any objects that may have been created.
You need to rerun the line of code in the Workbook_Open procedure of the
ThisWorkbook module. Maybe put it into a FixMe() sub that you can run to
reset anything else that gets messed up, like the states of ScreenUpdating,
EnableEvents, etc.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Geoff" wrote in message
...
Hi
I have an addin with a class module which sometimes gives problems after
altering code. I find the class events do not fire until I have stepped
through a procedure in the module. Whenever I change the class code I
always
compile and save. But once the events begin to fire there are no further
problems in any scenario.
Can anyone throw some light o what is going wrong and how it may be put
right?

T.I.A.

Geoff

In ThisWorkBook module:

Dim oAppEvents As CAppEvents
Private Sub Workbook_Open()
Set oAppEvents = New CAppEvents
End Sub

In CAppEvents class module:

Dim WithEvents oApp As Application
Private Sub Class_Initialize()
Set oApp = Application
End Sub
then various events:
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookAddinUninstall(ByVal Wb As Workbook)
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As
Boolean)
Private Sub oApp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI
As
Boolean, Cancel As Boolean)
Private Sub oApp_SheetActivate(ByVal Sh As Object)
Private Sub oApp_WorkbookDeactivate(ByVal Wb As Workbook)
Private Sub oApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)




  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 371
Default Class Events not firing

That is interesting.
Though I have not used EnableEvents = False I wonder now if there may be
other settings which may persist.

It is odd that once any event in the class module has fired then the xla
performs as expected. I have been very careful in the shutdown of the xla
but was unaware of 'persistence'. But what??

Geoff


"Jim Thomlinson" wrote:

Application.EnableEvents = False

is a persistent setting. Restarting XL does not reset it. Once you turn it
off the only way it is coming back on is if you reset it via code...
--
HTH...

Jim Thomlinson


"Geoff" wrote:

If I understand correctly you are suggesting that during development I set
all objects to nothing etc after code changes. I can understand the
reasoning but doesn't the same thing happen if the app is closed and
reopened? There have been times when I have shut the app and reopened but
the problem still persists. Silly as it may seem I have put a MsgBox ""
statement in both the WorkBook_Open event and also the oApp_WorkbookOpen
event in order to step through the code. This works but is obviously not a
practical approach.

Geoff

"Jon Peltier" wrote:

Often when you edit code, you reset any objects that may have been created.
You need to rerun the line of code in the Workbook_Open procedure of the
ThisWorkbook module. Maybe put it into a FixMe() sub that you can run to
reset anything else that gets messed up, like the states of ScreenUpdating,
EnableEvents, etc.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Geoff" wrote in message
...
Hi
I have an addin with a class module which sometimes gives problems after
altering code. I find the class events do not fire until I have stepped
through a procedure in the module. Whenever I change the class code I
always
compile and save. But once the events begin to fire there are no further
problems in any scenario.
Can anyone throw some light o what is going wrong and how it may be put
right?

T.I.A.

Geoff

In ThisWorkBook module:

Dim oAppEvents As CAppEvents
Private Sub Workbook_Open()
Set oAppEvents = New CAppEvents
End Sub

In CAppEvents class module:

Dim WithEvents oApp As Application
Private Sub Class_Initialize()
Set oApp = Application
End Sub
then various events:
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookAddinUninstall(ByVal Wb As Workbook)
Private Sub oApp_WorkbookOpen(ByVal Wb As Workbook)
Private Sub oApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As
Boolean)
Private Sub oApp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI
As
Boolean, Cancel As Boolean)
Private Sub oApp_SheetActivate(ByVal Sh As Object)
Private Sub oApp_WorkbookDeactivate(ByVal Wb As Workbook)
Private Sub oApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Citrix NFuse and Events Not Firing Jim Thomlinson Excel Programming 0 March 28th 07 05:04 PM
Firing Click Events with Accelerators Geoff Excel Programming 13 July 18th 05 12:31 PM
Deactivate Events not Firing William Excel Programming 12 July 5th 05 05:12 AM
Excel App. level events not firing Chris W. Excel Programming 1 February 28th 05 03:44 AM
class events stop firing with ADO 2.8 ThankYou_jeff Excel Programming 4 November 14th 04 10:59 AM


All times are GMT +1. The time now is 01:40 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"