Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,090
Default Event macro firing twice

Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think it's
due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to demonstrate
my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is clicked
to True once. This of course causes the CopyData2 macro to execute twice as
well.
Where did I go wrong? Thanks for your help. Otto


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 692
Default Event macro firing twice

Your code may be activating events (I am not sure)
but you can prevent that by wrapping your code -

Application.EnableEvents=False
' your code

Application.EnableEvents=True

--
steveB

Remove "AYN" from email to respond
"Otto Moehrbach" wrote in message
...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think
it's due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to
demonstrate my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is
clicked to True once. This of course causes the CopyData2 macro to
execute twice as well.
Where did I go wrong? Thanks for your help. Otto




  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,120
Default Event macro firing twice

Create a flag similar to enableevents.

Public WithEvents CheckBoxGroup As MSForms.CheckBox

Private mEnableEvents as Boolean

Private Sub CheckBoxGroup_Click()
If not mEnableEvents Then
mEnableEvents = True
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
mEnableEvents = False
End If
End Sub


--
HTH

Bob Phillips

"Otto Moehrbach" wrote in message
...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think

it's
due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to

demonstrate
my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is

clicked
to True once. This of course causes the CopyData2 macro to execute twice

as
well.
Where did I go wrong? Thanks for your help. Otto




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,090
Default Event macro firing twice

Bob
I appreciate your help. This one has me stumped. I did what you said
and it didn't change anything. The event macro still fires twice. Please
help if you have any ideas. Otto
"Bob Phillips" wrote in message
...
Create a flag similar to enableevents.

Public WithEvents CheckBoxGroup As MSForms.CheckBox

Private mEnableEvents as Boolean

Private Sub CheckBoxGroup_Click()
If not mEnableEvents Then
mEnableEvents = True
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
mEnableEvents = False
End If
End Sub


--
HTH

Bob Phillips

"Otto Moehrbach" wrote in message
...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think

it's
due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to

demonstrate
my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is

clicked
to True once. This of course causes the CopyData2 macro to execute twice

as
well.
Where did I go wrong? Thanks for your help. Otto






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,071
Default Event macro firing twice

Are both events for the same checkbox? Or for different checkboxes?

How are you instantiating the various objects? Any chance you have the
same checkbox associated with multiple instantiations of the class?

You may also want to check the value of the checkbox before deciding on
what, if any, action to take.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article ,
says...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think it's
due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to demonstrate
my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is clicked
to True once. This of course causes the CopyData2 macro to execute twice as
well.
Where did I go wrong? Thanks for your help. Otto





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,090
Default Event macro firing twice

Tushar
Thanks for your response. Yes, both firings are for the same checkbox
(the MsgBox tells me the number of the checkbox that was clicked). Look at
the subsequent messages in this thread and see what I did with Steve's
suggestion. As I say, it works now but I have no idea why it should. Otto
"Tushar Mehta" wrote in message
om...
Are both events for the same checkbox? Or for different checkboxes?

How are you instantiating the various objects? Any chance you have the
same checkbox associated with multiple instantiations of the class?

You may also want to check the value of the checkbox before deciding on
what, if any, action to take.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article ,
says...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think
it's
due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to
demonstrate
my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is
clicked
to True once. This of course causes the CopyData2 macro to execute twice
as
well.
Where did I go wrong? Thanks for your help. Otto





  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,090
Default Event macro firing twice

Steve, Bob
I did what Steve suggested and it works. But I have no idea why it
should work.
I put the EnableEvents code in the CopyData2 macro. I played around with
placement of the EnableEvents code until I found the offending line. The
code is as shown below. What this tells me is that the Paste command
triggered the Checkbox event macro, and that doesn't make any sense to me.
The Results sheet has no checkboxes at all. Can anybody explain how this
happens? Thanks for your help. Otto
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Copy
Application.EnableEvents = False
Dest.PasteSpecial xlPasteValues
Application.EnableEvents = True
End Sub
"Otto Moehrbach" wrote in message
...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think
it's due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to
demonstrate my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is
clicked to True once. This of course causes the CopyData2 macro to
execute twice as well.
Where did I go wrong? Thanks for your help. Otto




  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,090
Default Event macro firing twice

Tushar asked if both firings were for the same Checkbox. Yes they are. The
MsgBox tells me the name of the Checkbox that triggered the event macro.
Otto
"Otto Moehrbach" wrote in message
...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think
it's due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to
demonstrate my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is
clicked to True once. This of course causes the CopyData2 macro to
execute twice as well.
Where did I go wrong? Thanks for your help. Otto




  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 692
Default Event macro firing twice

It works because you have an event macro somewhere in the sorkbook that gets
fired when your code runs.

The events to look for could be:
Change
Selection.Change
Checkbox change
or a host of others...

These are usually in the worksheet module or in ThisWorkbook module.
It might even be in your Class module.

They each have a use designed by you and should be left alone. But they
need to be ignored when your code is running.

The lines I gave you tell the workbook to ignor any of these events and just
keep going.


Some code to consider for wrapping purposes a
Application.DisplayAlerts =
Application.EnableEvents =
Application.Calculation =
Application.ScreenUpdating =

and others...

--
steveB

Remove "AYN" from email to respond
"Otto Moehrbach" wrote in message
...
Tushar asked if both firings were for the same Checkbox. Yes they are.
The MsgBox tells me the name of the Checkbox that triggered the event
macro. Otto
"Otto Moehrbach" wrote in message
...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think
it's due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i" to
the cell that is linked to the checkbox that was clicked on. My final
purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to
demonstrate my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is
clicked to True once. This of course causes the CopyData2 macro to
execute twice as well.
Where did I go wrong? Thanks for your help. Otto






  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,090
Default Event macro firing twice

Steve
Thanks for your help, but I'm afraid that it's not that simple. I have
only one event macro in this entire workbook. That includes all the sheet
modules as well as the workbook module. The one event macro that I have is
in the Class module and it fires when any checkbox in the active sheet is
clicked on. That event macro is firing twice and it is doing it again. I
said that it was fixed but it isn't. Both firings are triggered by the same
checkbox (the MsgBox in that event macro tells me the name of the triggering
Checkbox).
I will try moving the EnableEvent code and see if I can trap the
offending code. Thanks for your help and I would appreciate any tips you
might have.. Otto
"STEVE BELL" wrote in message
news:uNYye.28362$mr4.24541@trnddc05...
It works because you have an event macro somewhere in the sorkbook that
gets fired when your code runs.

The events to look for could be:
Change
Selection.Change
Checkbox change
or a host of others...

These are usually in the worksheet module or in ThisWorkbook module.
It might even be in your Class module.

They each have a use designed by you and should be left alone. But they
need to be ignored when your code is running.

The lines I gave you tell the workbook to ignor any of these events and
just keep going.


Some code to consider for wrapping purposes a
Application.DisplayAlerts =
Application.EnableEvents =
Application.Calculation =
Application.ScreenUpdating =

and others...

--
steveB

Remove "AYN" from email to respond
"Otto Moehrbach" wrote in message
...
Tushar asked if both firings were for the same Checkbox. Yes they are.
The MsgBox tells me the name of the Checkbox that triggered the event
macro. Otto
"Otto Moehrbach" wrote in message
...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up my
code. The objective was to determine which one of many checkboxes was
clicked on and its value. I am having one problem with it and I think
it's due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i"
to the cell that is linked to the checkbox that was clicked on. My
final purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to
demonstrate my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is
clicked to True once. This of course causes the CopyData2 macro to
execute twice as well.
Where did I go wrong? Thanks for your help. Otto










  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 692
Default Event macro firing twice

Otto,

You are more than welcome. It is always a pleasure to help (where I can).

On a scale of 0 to 10 I am only a 5.
And Class modules are out of my area of expertise.

Sounds like your expertise is more advanced than mine...

But any time you think I might be of help - just shout it out...

My only other advice is to use the EnableEvents line in the event code to
prevent it from firing itself.

I include most of these in most of my code (but make sure you want it turned
off)
and they do help speed up the code...

EnableEvents
ScreenUpdating
DisplayAlerts
--
steveB

Remove "AYN" from email to respond
"Otto Moehrbach" wrote in message
...
Steve
Thanks for your help, but I'm afraid that it's not that simple. I have
only one event macro in this entire workbook. That includes all the sheet
modules as well as the workbook module. The one event macro that I have
is in the Class module and it fires when any checkbox in the active sheet
is clicked on. That event macro is firing twice and it is doing it again.
I said that it was fixed but it isn't. Both firings are triggered by the
same checkbox (the MsgBox in that event macro tells me the name of the
triggering Checkbox).
I will try moving the EnableEvent code and see if I can trap the
offending code. Thanks for your help and I would appreciate any tips you
might have.. Otto
"STEVE BELL" wrote in message
news:uNYye.28362$mr4.24541@trnddc05...
It works because you have an event macro somewhere in the sorkbook that
gets fired when your code runs.

The events to look for could be:
Change
Selection.Change
Checkbox change
or a host of others...

These are usually in the worksheet module or in ThisWorkbook module.
It might even be in your Class module.

They each have a use designed by you and should be left alone. But they
need to be ignored when your code is running.

The lines I gave you tell the workbook to ignor any of these events and
just keep going.


Some code to consider for wrapping purposes a
Application.DisplayAlerts =
Application.EnableEvents =
Application.Calculation =
Application.ScreenUpdating =

and others...

--
steveB

Remove "AYN" from email to respond
"Otto Moehrbach" wrote in message
...
Tushar asked if both firings were for the same Checkbox. Yes they are.
The MsgBox tells me the name of the Checkbox that triggered the event
macro. Otto
"Otto Moehrbach" wrote in message
...
Excel 2002, WinXP
Tom Ogilvy, Vasant, and Greg Wilson were very helpful with setting up
my code. The objective was to determine which one of many checkboxes
was clicked on and its value. I am having one problem with it and I
think it's due to some code that I added.
The event macro, in a class module, is:
Public WithEvents CheckBoxGroup As MSForms.CheckBox
Private Sub CheckBoxGroup_Click()
Set i = ActiveSheet.Range(CheckBoxGroup.LinkedCell)
MsgBox CheckBoxGroup.Name & " clicked"
Call CopyData2
End Sub

The line above that starts with "Set i = " is mine. I want to set "i"
to the cell that is linked to the checkbox that was clicked on. My
final purpose is to access the cell to the right of that linked cell.
I reduced my code in the CopyData2 macro to just a few lines to
demonstrate my problem. The CopyData2 macro is:
Sub CopyData2()
Set Dest = Sheets("Results").Range("D1")
i.Offset(, 1).Copy
Dest.PasteSpecial xlPasteValues
End Sub

My problem is that the event macro fires twice when the checkbox is
clicked to True once. This of course causes the CopyData2 macro to
execute twice as well.
Where did I go wrong? Thanks for your help. Otto










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
Workbook_Open event not firing 0013 Excel Programming 4 May 24th 05 09:53 PM
Event sometimes stops firing? HotRod Excel Programming 7 May 5th 05 12:20 AM
Code for App level event (not firing) Chris W[_3_] Excel Programming 2 February 28th 05 02:57 AM
Worksheet change event not firing Wexler Excel Programming 11 October 25th 04 09:45 PM
OnTime event not firing in Workbook_Open event procedure GingerTommy Excel Programming 0 September 24th 03 03:18 PM


All times are GMT +1. The time now is 09:26 AM.

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

About Us

"It's about Microsoft Excel"