ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Problem with Userform and different code modules (https://www.excelbanter.com/excel-programming/323883-problem-userform-different-code-modules.html)

Jos Vens[_2_]

Problem with Userform and different code modules
 
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



Jos Vens[_2_]

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






All times are GMT +1. The time now is 11:00 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com