Archive of Mr Excel Message Board


Back to General Excel archive index
Back to archive home

Calling a function and retrieving a value

Posted by Stan on November 22, 2001 8:23 AM
I found a Visual Basic snippet that emulates an InputBox to encrypt a password. I have tried to adapt it to my Excel application. This is the code I use to call a Function from a UserForm:

Private Sub Command_Click()

Dim myPassword As String
'Format for password InputBox
'Return = InputBoxX("Caption","Message","Default Value", Boolean)
'In the last field:
'0 = No password x's
'1 = Use password x's

myPassword = frmInput.InputBoxX("Restricted Access", "Please enter password:", "", 1)

The function is in a Userform that looks like an InputBox:

Public InputBoxStr$
Public Function InputBoxX(bCaption As String, Msg As String, Default As String, Stars As Boolean) As String

If Stars = True Then frmInput.txtInput.PasswordChar = "x"
frmInput.Caption = bCaption
frmInput.lblMsg.Caption = Msg
frmInput.txtInput.Text = Default

frmInput.Show

Do
DoEvents
Loop Until InputBoxStr <> ""

If InputBoxStr = "ksCancel" Then
InputBoxStr = ""
InputBoxX = InputBoxStr
Unload frmInput
Exit Function
End If

Unload frmInput

InputBoxX = InputBoxStr
InputBoxStr = ""
End Function

Private Sub cmdOK_Click()
InputBoxStr = txtInput.Text
End Sub

Private Sub cmdCancel_Click()
InputBoxStr = "ksCancel"
End Sub

What happens is that the program stops at "frmInput.Show". In Visual Basic, the code works fine, i.e. it loops and takes the values for the InputBoxStr depending on which of the two command buttons is clicked. Why doesn't this code behave the same way in VBA?

Cheers - Stan


Re: Calling a function and retrieving a value

Posted by Ivan F Moala on November 22, 2001 7:16 PM
change the name of your userform to
frmInput
Also as I undertand it the Vb code in the userform
has;
1 Lable
1 textbox
2 commandbuttons
You should name these appropriately to the
names setup eg.

1 lable = Lblmsg
1 textbos = txtinput
2 cmdbuttons = cmdOk, cmdCancel

The private command_Click is the commandbutton
avail from Toolbox = activex control and
should be on your sheet.
Also note that the password character can be ANY
character you wish...Std = *

Ivan


Ivan Dim myPassword As String 'Format for password InputBox 'Return = InputBoxX("Caption","Message","Default Value", Boolean) 'In the last field: '0 = No password x's '1 = Use password x's myPassword = frmInput.InputBoxX("Restricted Access", "Please enter password:", "", 1)


This archive is from the original message board at www.MrExcel.com.
All contents © 1998-2004 MrExcel.com.
Visit our online store to buy searchable CD's with thousands of VBA and Excel answers.
Microsoft Excel is a registered trademark of the Microsoft Corporation.
MrExcel is a registered trademark of Tickling Keys, Inc.