View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Andy Pope Andy Pope is offline
external usenet poster
 
Posts: 2,489
Default XL-2003 - Class Module - Controls declared "withEvents" don'tsink events..

I think the main difference is the collection will allow you to add more
controls whereas in my version you would need an object for each control.

Cheers
Andy

Michel S. wrote:
Thanks !

Obviously it's monday morning ! ;-)

This is the way I always did it in Access ; Bob Phillips shows another
method using a controls collection I didn't knew about.

Is there actually a difference between these methods in terms of
performance, readability, upward compatibility ?

Thanks again !

PS: I saw your replies in Google groups *before* they even show in my
newsreader - even with a refresh every five minutes - really amazing !

Andy Pope avait soumis l'idée :

Hi,

By using Dim in the userform initialize event you are actual creating
an instance local to that procedure rather than the instance to the
userform. Try this modification.

Private Sub UserForm_Initialize()
Set objBtn = New clsBtn
Set objBtn.Ok = Me.ExistingCmdBtnOnThisForm
End Sub

Cheers
Andy

Michel S. wrote:

Hello !

Given the following code :

' == clsBtn Class module

Private WithEvents mCmdOk AS MSForms.CommandButton

Public Property Set Ok (cmd AS MSForms.CommandButton)
Set mCmdOk = cmd
End Property

Private Sub mCmdOk_Click()
MsgBox "Ok button clicked"
End Sub

' == User Form
Private objBtn AS clsBtn

Private Sub UserForm_Initialize
Dim objBtn as New clsBtn
Set objBtn.Ok = Me.ExistingCmdBtnOnThisForm
End Sub

When I click on "Me.ExistingCmdBtnOnThisForm", I expect the MsgBox to
pop, but nothing happens.

Any idea why it doesn't work ?
Thanks




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info