The Subroutine only runs once
I have now set my global_var1 as follows:
When ' global_var1 is comes back from "Question_form" ' global_var1 is = False
Dim global_var1 as boolean
Sub module1
' global_var1 = false ' global_var1 is = False, auto initilized
With Question_Form
Load Question_Form
.Show
End With
ans = global_var1 ' global_var1 is = False
End Sub ' module1
My userform cmdbtn code is
Private Sub Doit_Btn_Click()
global_var1 = True 'global_var1 is = False
Question_Form.Hide 'global_var1 is = True
End Sub
"Rick Rothstein (MVP -
VB)" wrote:
'lcaretto' spotted the real problem... you Dim'med the global variable as
Private (I completely overlooked this), thus restricting its scope to code
in its Module only.
However, the point I made about the Boolean variable being initialized to
False at creation (so you don't have to initialize it manually) is still
valid.
Rick
"Rick Rothstein (MVP - VB)" wrote in
message ...
Does the "main Subroutine" get run every time that you show your UserForm?
If so, you are probably re-initializing the global variable every time.
Since a Boolean variable automatically initializes on creation as False,
there is no need to deliberately initialize it to this value... try
removing the global_var1=False statement from your "main Subroutine" and
see it that makes a difference.
Rick
"miek" wrote in message
...
In my VBA module "module1" i have a global varible
Private global_var1 as boolean
I initialize it in the main Subroutine
global_var1 = false
Then I call my userform, which has a cmdbtn "Doit"
With Question_Form
Load Question_Form
.Show
End With
My userform cmdbtn code is
Private Sub Always_Btn_Click()
global_var1 = True
Question_Form.Hide
End Sub
However, when my userform returns "global_var1" remains = false
How do i pass global_var1 back to module1?
Thanks