View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Jos Vens[_2_] Jos Vens[_2_] is offline
external usenet poster
 
Posts: 134
Default Problem with Userform and different code modules

Hi,

by writing the problem, I discovered myself the solution by passing the form
as a parameter to the other code module. It works! I only wonder if it's
the only way?

Calling:

DCL_Login FrmLogin

Function DCL_Login(vFrmLogin As UserForm)
vFrmLogin.cbCombo1.Visible = (gnProgram = 1)
vFrmLogin.cbCombo2.Visible = (gnProgram = 2)
End Function

Thanks anyway
Jos

"Jos Vens" schreef in bericht
...
Hi,

I have a problem with a Userform which I use for a double purpose.
Because everything is complex, I split up the procedures in different
modules. Here comes the problem: the pointer to the userform gets lost
when I execute a procedure in a different module than the first module
that is chosen by the form. Can I solve this, or must I put everything in
the first called module?

An example makes everything clear (this is a simplification, in fact, it
runs more than 1000 lines of code, that's why it is put in different code
modules!)

Thanks for your help!
Jos Vens

Public gnProgram as Integer

'Module of the userform

'Button1
Private Sub bButton1_Click()
LOGIN1_bButton_Click
End Sub

'Button2
Private Sub bButton2_Click()
LOGIN2_bButton_Click
End Sub

'Code Module LOGIN1

Function LOGIN1_bButton_Click() <<--- Here is FrmLogin is recognized
because it is called straight from the userform
gnProgram = 1
FrmLogin.oName.Visible = True
DCL_Login
End Function

'Code Module LOGIN2

Function LOGIN2_bButton_Click() <<--- Here is FrmLogin is recognized
because it is called straight from the userform
gnProgram = 2
FrmLogin.oName.Visible = False
DCL_Login
End Function

'Code Module DECLARATION <<--- Here is the problem: FrmLogin is no longer
recognized because it's another code module

Function DCL_Login()
FrmLogin.cbCombo1.Visible = (gnProgram = 1)
FrmLogin.cbCombo2.Visible = (gnProgram = 2)
End Function