![]() |
Replace password with *** in input box, xlVeryHidden
Hi,
The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John |
Replace password with *** in input box, xlVeryHidden
this site should point you in right direction:
http://www.xcelfiles.com/API_09.html -- jb "John" wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John |
Replace password with *** in input box, xlVeryHidden
Yep. You can not do this kind of thing with an inputbox.
But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John -- Dave Peterson |
Replace password with *** in input box, xlVeryHidden
Thank you Dave.
Do you mean: Make a a new Custom UserForm in VBA, and then insert a textbox from the tools menue. Then set the property of this inserted textbox to xxx? Or do I develop a form in "Excel mode". (I'm not an expert of VBA yet...) -- Thanks John "Dave Peterson" wrote: Yep. You can not do this kind of thing with an inputbox. But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John -- Dave Peterson |
Replace password with *** in input box, xlVeryHidden
If you want to design your own userform:
Debra Dalgleish shares some tips: http://contextures.com/xlUserForm01.html Peter Aiken Articles: Part I http://msdn.microsoft.com/library/en...FormsPartI.asp Part II http://msdn.microsoft.com/library/en...ormsPartII.asp You can change properties within the VBE (manually) or you could use code: Option Explicit Private Sub UserForm_Initialize() Me.TextBox1.PasswordChar = "*" End Sub John wrote: Thank you Dave. Do you mean: Make a a new Custom UserForm in VBA, and then insert a textbox from the tools menue. Then set the property of this inserted textbox to xxx? Or do I develop a form in "Excel mode". (I'm not an expert of VBA yet...) -- Thanks John "Dave Peterson" wrote: Yep. You can not do this kind of thing with an inputbox. But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John -- Dave Peterson -- Dave Peterson |
Replace password with *** in input box, xlVeryHidden
Here is the end result for the un-hide operation:
'In the sheet where I have the button to call the UserForm: Private Sub CommandButton1_Click() Password.Show End Sub 'The UserForm Cancel button: Private Sub CancelButton_Click() Unload Me End Sub 'The UserForm OK button: Private Sub OKButton_Click() If TextBox1.Text < "secret" Then MsgBox "Invalid Password" Exit Sub ElseIf TextBox1.Text = "secret" Then Worksheets("Sheet2").Visible = True Worksheets("Sheet1").Visible = True Worksheets("Sheet1").Activate Unload Password End If End Sub The UserForm has a TextBox with TextBoxCharter set to "*", and the form is called "Password" -- John "Dave Peterson" wrote: If you want to design your own userform: Debra Dalgleish shares some tips: http://contextures.com/xlUserForm01.html Peter Aiken Articles: Part I http://msdn.microsoft.com/library/en...FormsPartI.asp Part II http://msdn.microsoft.com/library/en...ormsPartII.asp You can change properties within the VBE (manually) or you could use code: Option Explicit Private Sub UserForm_Initialize() Me.TextBox1.PasswordChar = "*" End Sub John wrote: Thank you Dave. Do you mean: Make a a new Custom UserForm in VBA, and then insert a textbox from the tools menue. Then set the property of this inserted textbox to xxx? Or do I develop a form in "Excel mode". (I'm not an expert of VBA yet...) -- Thanks John "Dave Peterson" wrote: Yep. You can not do this kind of thing with an inputbox. But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John -- Dave Peterson -- Dave Peterson |
Replace password with *** in input box, xlVeryHidden
Make sure you protect your project, too.
Inside the VBE: Tools|VBAProject Properties|Protection tab It's not 100%, but will keep most people from viewing your code. John_J wrote: Here is the end result for the un-hide operation: 'In the sheet where I have the button to call the UserForm: Private Sub CommandButton1_Click() Password.Show End Sub 'The UserForm Cancel button: Private Sub CancelButton_Click() Unload Me End Sub 'The UserForm OK button: Private Sub OKButton_Click() If TextBox1.Text < "secret" Then MsgBox "Invalid Password" Exit Sub ElseIf TextBox1.Text = "secret" Then Worksheets("Sheet2").Visible = True Worksheets("Sheet1").Visible = True Worksheets("Sheet1").Activate Unload Password End If End Sub The UserForm has a TextBox with TextBoxCharter set to "*", and the form is called "Password" -- John "Dave Peterson" wrote: If you want to design your own userform: Debra Dalgleish shares some tips: http://contextures.com/xlUserForm01.html Peter Aiken Articles: Part I http://msdn.microsoft.com/library/en...FormsPartI.asp Part II http://msdn.microsoft.com/library/en...ormsPartII.asp You can change properties within the VBE (manually) or you could use code: Option Explicit Private Sub UserForm_Initialize() Me.TextBox1.PasswordChar = "*" End Sub John wrote: Thank you Dave. Do you mean: Make a a new Custom UserForm in VBA, and then insert a textbox from the tools menue. Then set the property of this inserted textbox to xxx? Or do I develop a form in "Excel mode". (I'm not an expert of VBA yet...) -- Thanks John "Dave Peterson" wrote: Yep. You can not do this kind of thing with an inputbox. But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John -- Dave Peterson -- Dave Peterson -- Dave Peterson |
Replace password with *** in input box, xlVeryHidden
"Dave Peterson" wrote: Make sure you protect your project, too. Inside the VBE: Tools|VBAProject Properties|Protection tab It's not 100%, but will keep most people from viewing your code. John_J wrote: Here is the end result for the un-hide operation: 'In the sheet where I have the button to call the UserForm: Private Sub CommandButton1_Click() Password.Show End Sub 'The UserForm Cancel button: Private Sub CancelButton_Click() Unload Me End Sub 'The UserForm OK button: Private Sub OKButton_Click() If TextBox1.Text < "secret" Then MsgBox "Invalid Password" Exit Sub ElseIf TextBox1.Text = "secret" Then Worksheets("Sheet2").Visible = True Worksheets("Sheet1").Visible = True Worksheets("Sheet1").Activate Unload Password End If End Sub The UserForm has a TextBox with TextBoxCharter set to "*", and the form is called "Password" -- John "Dave Peterson" wrote: If you want to design your own userform: Debra Dalgleish shares some tips: http://contextures.com/xlUserForm01.html Peter Aiken Articles: Part I http://msdn.microsoft.com/library/en...FormsPartI.asp Part II http://msdn.microsoft.com/library/en...ormsPartII.asp You can change properties within the VBE (manually) or you could use code: Option Explicit Private Sub UserForm_Initialize() Me.TextBox1.PasswordChar = "*" End Sub John wrote: Thank you Dave. Do you mean: Make a a new Custom UserForm in VBA, and then insert a textbox from the tools menue. Then set the property of this inserted textbox to xxx? Or do I develop a form in "Excel mode". (I'm not an expert of VBA yet...) -- Thanks John "Dave Peterson" wrote: Yep. You can not do this kind of thing with an inputbox. But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John -- Dave Peterson -- Dave Peterson -- Dave Peterson |
Replace password with *** in input box, xlVeryHidden
=================================================
Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet", , 10000, 9500) ' ' nobody can see the text that you type because it is out of screen !!! ' Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide" End Select End Sub ===================================== "Dave Peterson" wrote: Make sure you protect your project, too. Inside the VBE: Tools|VBAProject Properties|Protection tab It's not 100%, but will keep most people from viewing your code. John_J wrote: Here is the end result for the un-hide operation: 'In the sheet where I have the button to call the UserForm: Private Sub CommandButton1_Click() Password.Show End Sub 'The UserForm Cancel button: Private Sub CancelButton_Click() Unload Me End Sub 'The UserForm OK button: Private Sub OKButton_Click() If TextBox1.Text < "secret" Then MsgBox "Invalid Password" Exit Sub ElseIf TextBox1.Text = "secret" Then Worksheets("Sheet2").Visible = True Worksheets("Sheet1").Visible = True Worksheets("Sheet1").Activate Unload Password End If End Sub The UserForm has a TextBox with TextBoxCharter set to "*", and the form is called "Password" -- John "Dave Peterson" wrote: If you want to design your own userform: Debra Dalgleish shares some tips: http://contextures.com/xlUserForm01.html Peter Aiken Articles: Part I http://msdn.microsoft.com/library/en...FormsPartI.asp Part II http://msdn.microsoft.com/library/en...ormsPartII.asp You can change properties within the VBE (manually) or you could use code: Option Explicit Private Sub UserForm_Initialize() Me.TextBox1.PasswordChar = "*" End Sub John wrote: Thank you Dave. Do you mean: Make a a new Custom UserForm in VBA, and then insert a textbox from the tools menue. Then set the property of this inserted textbox to xxx? Or do I develop a form in "Excel mode". (I'm not an expert of VBA yet...) -- Thanks John "Dave Peterson" wrote: Yep. You can not do this kind of thing with an inputbox. But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John -- Dave Peterson -- Dave Peterson -- Dave Peterson |
Replace password with *** in input box, xlVeryHidden
what is your question?
"prasitstar" wrote in message ... "Dave Peterson" wrote: Make sure you protect your project, too. Inside the VBE: Tools|VBAProject Properties|Protection tab It's not 100%, but will keep most people from viewing your code. John_J wrote: Here is the end result for the un-hide operation: 'In the sheet where I have the button to call the UserForm: Private Sub CommandButton1_Click() Password.Show End Sub 'The UserForm Cancel button: Private Sub CancelButton_Click() Unload Me End Sub 'The UserForm OK button: Private Sub OKButton_Click() If TextBox1.Text < "secret" Then MsgBox "Invalid Password" Exit Sub ElseIf TextBox1.Text = "secret" Then Worksheets("Sheet2").Visible = True Worksheets("Sheet1").Visible = True Worksheets("Sheet1").Activate Unload Password End If End Sub The UserForm has a TextBox with TextBoxCharter set to "*", and the form is called "Password" -- John "Dave Peterson" wrote: If you want to design your own userform: Debra Dalgleish shares some tips: http://contextures.com/xlUserForm01.html Peter Aiken Articles: Part I http://msdn.microsoft.com/library/en...FormsPartI.asp Part II http://msdn.microsoft.com/library/en...ormsPartII.asp You can change properties within the VBE (manually) or you could use code: Option Explicit Private Sub UserForm_Initialize() Me.TextBox1.PasswordChar = "*" End Sub John wrote: Thank you Dave. Do you mean: Make a a new Custom UserForm in VBA, and then insert a textbox from the tools menue. Then set the property of this inserted textbox to xxx? Or do I develop a form in "Excel mode". (I'm not an expert of VBA yet...) -- Thanks John "Dave Peterson" wrote: Yep. You can not do this kind of thing with an inputbox. But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide Sheet..." End Select End Sub -- Thanks John -- Dave Peterson -- Dave Peterson -- Dave Peterson |
Replace password with *** in input box, xlVeryHidden
so this is not a question. You are saying that instead of using a textbox
control with the password character set, one can use an input box and place it off screen somewhere? I use Vista and I see the input box - it will not allow a user interface where a user cannot enter it. I'd suggest this is not a good idea. "prasitstar" wrote in message ... ================================================= Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet", , 10000, 9500) ' ' nobody can see the text that you type because it is out of screen !!! ' Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else MsgBox "Incorrect password; no action taken.", vbInformation, "Unhide" End Select End Sub ===================================== "Dave Peterson" wrote: Make sure you protect your project, too. Inside the VBE: Tools|VBAProject Properties|Protection tab It's not 100%, but will keep most people from viewing your code. John_J wrote: Here is the end result for the un-hide operation: 'In the sheet where I have the button to call the UserForm: Private Sub CommandButton1_Click() Password.Show End Sub 'The UserForm Cancel button: Private Sub CancelButton_Click() Unload Me End Sub 'The UserForm OK button: Private Sub OKButton_Click() If TextBox1.Text < "secret" Then MsgBox "Invalid Password" Exit Sub ElseIf TextBox1.Text = "secret" Then Worksheets("Sheet2").Visible = True Worksheets("Sheet1").Visible = True Worksheets("Sheet1").Activate Unload Password End If End Sub The UserForm has a TextBox with TextBoxCharter set to "*", and the form is called "Password" -- John "Dave Peterson" wrote: If you want to design your own userform: Debra Dalgleish shares some tips: http://contextures.com/xlUserForm01.html Peter Aiken Articles: Part I http://msdn.microsoft.com/library/en...FormsPartI.asp Part II http://msdn.microsoft.com/library/en...ormsPartII.asp You can change properties within the VBE (manually) or you could use code: Option Explicit Private Sub UserForm_Initialize() Me.TextBox1.PasswordChar = "*" End Sub John wrote: Thank you Dave. Do you mean: Make a a new Custom UserForm in VBA, and then insert a textbox from the tools menue. Then set the property of this inserted textbox to xxx? Or do I develop a form in "Excel mode". (I'm not an expert of VBA yet...) -- Thanks John "Dave Peterson" wrote: Yep. You can not do this kind of thing with an inputbox. But you could design your own form. There's a .passwordchar property for textboxes that you could change to asterisk. John wrote: Hi, The following code works fine but the password "secret" is visible as I type. How can I hide it? Can I hide it by putting a label or another box on top of the password input box? I believe it is not possible to hide charters inside an input box... Private Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet") Select Case i_pwd Case pwd Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case Else |
Replace password with *** in input box, xlVeryHidden
There is another solution which avoids using a textbox on a userform. First, though, credit to Daniel Klann (there used to be a link to this but it doesn't work anymo 'DanielKlann.com | Daniel Klann' (http://www.danielklann.com/excel/hid...a_inputbox.htm) but there's another one 'here ' (http://www.tek-tips.com/faqs.cfm?fid=4617)and I include the code below. I would put the entire code below into its own code module then forget it: Code: -------------------- Option Explicit '//////////////////////////////////////////////////////////////////// 'Password masked inputbox 'Allows you to hide characters entered in a VBA Inputbox. ' 'Code written by Daniel Klann 'March 2003 '//////////////////////////////////////////////////////////////////// 'API functions to be used Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _ ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 Private hHook As Long Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim RetVal Dim strClassName As String, lngBuffer As Long If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then 'A window has been activated RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then 'Class name of the Inputbox 'This changes the edit control so that it display the password character *. 'You can change the Asc("*") as you please. SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If 'This line will ensure that any other hooks that may be in place are 'called correctly. CallNextHookEx hHook, lngCode, wParam, lParam End Function Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, _ Optional YPos, Optional HelpFile, Optional Context) As String Dim lngModHwnd As Long, lngThreadID As Long lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context) UnhookWindowsHookEx hHook End Function -------------------- Now you can replace your line: Code: -------------------- i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet", , 10000, 9500) -------------------- with: Code: -------------------- i_pwd = InputBoxDK("Please Enter Password to Unhide Sheet", "Unhide Sheet") -------------------- Worked here in xl2003. Patrick Molloy;592022 Wrote: so this is not a question. You are saying that instead of using a textbox control with the password character set, one can use an input box and place it off screen somewhere? I use Vista and I see the input box - it will not allow a user interface where a user cannot enter it. I'd suggest this is not a good idea. "prasitstar" wrote in message ... ================================================= Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet", , 10000, 9500) ' ' nobody can see the text that you type because it is out of screen !!! ' Select Case i_pwd -- p45cal *p45cal* ------------------------------------------------------------------------ p45cal's Profile: 558 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=164042 Microsoft Office Help |
Replace password with *** in input box, xlVeryHidden
Thanks the code works exalctly the way i wanted
"p45cal" wrote: There is another solution which avoids using a textbox on a userform. First, though, credit to Daniel Klann (there used to be a link to this but it doesn't work anymo 'DanielKlann.com | Daniel Klann' (http://www.danielklann.com/excel/hid...a_inputbox.htm) but there's another one 'here ' (http://www.tek-tips.com/faqs.cfm?fid=4617)and I include the code below. I would put the entire code below into its own code module then forget it: Code: -------------------- Option Explicit '//////////////////////////////////////////////////////////////////// 'Password masked inputbox 'Allows you to hide characters entered in a VBA Inputbox. ' 'Code written by Daniel Klann 'March 2003 '//////////////////////////////////////////////////////////////////// 'API functions to be used Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _ ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 Private hHook As Long Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim RetVal Dim strClassName As String, lngBuffer As Long If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then 'A window has been activated RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then 'Class name of the Inputbox 'This changes the edit control so that it display the password character *. 'You can change the Asc("*") as you please. SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If 'This line will ensure that any other hooks that may be in place are 'called correctly. CallNextHookEx hHook, lngCode, wParam, lParam End Function Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, _ Optional YPos, Optional HelpFile, Optional Context) As String Dim lngModHwnd As Long, lngThreadID As Long lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context) UnhookWindowsHookEx hHook End Function -------------------- Now you can replace your line: Code: -------------------- i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet", , 10000, 9500) -------------------- with: Code: -------------------- i_pwd = InputBoxDK("Please Enter Password to Unhide Sheet", "Unhide Sheet") -------------------- Worked here in xl2003. Patrick Molloy;592022 Wrote: so this is not a question. You are saying that instead of using a textbox control with the password character set, one can use an input box and place it off screen somewhere? I use Vista and I see the input box - it will not allow a user interface where a user cannot enter it. I'd suggest this is not a good idea. "prasitstar" wrote in message ... ================================================= Sub CommandButton1_Click() pwd = "secret" i_pwd = InputBox("Please Enter Password to Unhide Sheet", "Unhide Sheet", , 10000, 9500) ' ' nobody can see the text that you type because it is out of screen !!! ' Select Case i_pwd -- p45cal *p45cal* ------------------------------------------------------------------------ p45cal's Profile: 558 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=164042 Microsoft Office Help . |
All times are GMT +1. The time now is 09:29 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com