Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi,
I have a login box pop up when my excel doc opens and i need the password to come up as asterix's (Like logging into windows). Is this possible? If it is can they put how. Thanks in advance |
#2
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi,
There are a couple of ways and the first and easiest is to create a userform with a textbox and you can set the password character to mask the input. Or you can use the code below. The first chunk of code goes in a general module so ALT+F11 to open VB editor, right click 'ThisWorkbook' and paste the code in and you can then forget about that code. The code for the general module starts at the line Option Explicit. This bit of code can go in a general module or worksheet code and calls the main code and if you try it you get a masked inputbox. Credit to the original author noted below. '//////////////////////////////////////////////////// '// This is The main routine '// where we test it and it can '// be worksheet or module code '//////////////////////////////////////////////////// Sub GetPassWord() Dim X As String X = InPutBoxPwd("Please enter password", "Sentry") If X = vbNullString Then MsgBox "User Cancelled" Else MsgBox "User entered " & X End If End Sub Option Explicit ''///////////////////////////////////////////////////////////////// ''// 25 May 2003 // ''// Amended Ivan F Moala ''// Call with myresponse=InPutBoxPwd(etc ''// from any module ''///////////////////////////////////////////////////////////////// Public Declare Function GetActiveWindow _ Lib "user32" () _ As Long Public Declare Function FindWindowEx _ Lib "user32" _ Alias "FindWindowExA" ( _ ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) _ As Long Public Declare Function SendMessage _ Lib "user32" _ Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) _ As Long Public Declare Function SetTimer _ Lib "user32" ( _ ByVal hwnd As Long, _ ByVal nIDEvent As Long, _ ByVal uElapse As Long, _ ByVal lpTimerFunc As Long) _ As Long Public Declare Function KillTimer _ Lib "user32" ( _ ByVal hwnd As Long, _ ByVal nIDEvent As Long) _ As Long Public Declare Function GetForegroundWindow _ Lib "user32" () _ As Long Private Const nIDE As Long = &H100 Private Const EM_SETPASSWORDCHAR = &HCC Private hdlEditBox As Long Private Fgrndhdl As Long Public Function TimerFunc( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal nEvent As Long, _ ByVal nSecs As Long) As Long Dim hdlwndAct As Long '// Do we have a handle to the EditBox If hdlEditBox 0 Then Exit Function '// Get the handle to the ActiveWindow hdlwndAct = GetActiveWindow() '// Get the Editbox handle hdlEditBox = FindWindowEx(hdlwndAct, 0, "Edit", "") '// Set the password character for the InputBox SendMessage hdlEditBox, EM_SETPASSWORDCHAR, Asc("*"), ByVal 0 End Function Public Function InPutBoxPwd(fPrompt As String, _ Optional fTitle As String, _ Optional fDefault As String, _ Optional fXpos As Long, _ Optional fYpos As Long, _ Optional fHelpfile As String, _ Optional fContext As Long) As String Dim sInput As String '// Initialize hdlEditBox = 0 Fgrndhdl = GetForegroundWindow '// Windows-Timer SetTimer Fgrndhdl, nIDE, 100, AddressOf TimerFunc '// Main InputBox If fXpos Then sInput = InputBox(fPrompt, fTitle, fDefault, fXpos, fYpos, fHelpfile, fContext) Else sInput = InputBox(fPrompt, fTitle, fDefault, , , fHelpfile, fContext) End If '// Kill the correct Timer KillTimer Fgrndhdl, nIDE '// Pass result InPutBoxPwd = sInput End Function Mike "N1KO" wrote: Hi, I have a login box pop up when my excel doc opens and i need the password to come up as asterix's (Like logging into windows). Is this possible? If it is can they put how. Thanks in advance |
#3
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Thanks for this Mike,
It was a text box on a user form so used the password character. Didn't even notice it when i was looking through the properties. Appreciated. "Mike H" wrote: Hi, There are a couple of ways and the first and easiest is to create a userform with a textbox and you can set the password character to mask the input. Or you can use the code below. The first chunk of code goes in a general module so ALT+F11 to open VB editor, right click 'ThisWorkbook' and paste the code in and you can then forget about that code. The code for the general module starts at the line Option Explicit. This bit of code can go in a general module or worksheet code and calls the main code and if you try it you get a masked inputbox. Credit to the original author noted below. '//////////////////////////////////////////////////// '// This is The main routine '// where we test it and it can '// be worksheet or module code '//////////////////////////////////////////////////// Sub GetPassWord() Dim X As String X = InPutBoxPwd("Please enter password", "Sentry") If X = vbNullString Then MsgBox "User Cancelled" Else MsgBox "User entered " & X End If End Sub Option Explicit ''///////////////////////////////////////////////////////////////// ''// 25 May 2003 // ''// Amended Ivan F Moala ''// Call with myresponse=InPutBoxPwd(etc ''// from any module ''///////////////////////////////////////////////////////////////// Public Declare Function GetActiveWindow _ Lib "user32" () _ As Long Public Declare Function FindWindowEx _ Lib "user32" _ Alias "FindWindowExA" ( _ ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) _ As Long Public Declare Function SendMessage _ Lib "user32" _ Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) _ As Long Public Declare Function SetTimer _ Lib "user32" ( _ ByVal hwnd As Long, _ ByVal nIDEvent As Long, _ ByVal uElapse As Long, _ ByVal lpTimerFunc As Long) _ As Long Public Declare Function KillTimer _ Lib "user32" ( _ ByVal hwnd As Long, _ ByVal nIDEvent As Long) _ As Long Public Declare Function GetForegroundWindow _ Lib "user32" () _ As Long Private Const nIDE As Long = &H100 Private Const EM_SETPASSWORDCHAR = &HCC Private hdlEditBox As Long Private Fgrndhdl As Long Public Function TimerFunc( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal nEvent As Long, _ ByVal nSecs As Long) As Long Dim hdlwndAct As Long '// Do we have a handle to the EditBox If hdlEditBox 0 Then Exit Function '// Get the handle to the ActiveWindow hdlwndAct = GetActiveWindow() '// Get the Editbox handle hdlEditBox = FindWindowEx(hdlwndAct, 0, "Edit", "") '// Set the password character for the InputBox SendMessage hdlEditBox, EM_SETPASSWORDCHAR, Asc("*"), ByVal 0 End Function Public Function InPutBoxPwd(fPrompt As String, _ Optional fTitle As String, _ Optional fDefault As String, _ Optional fXpos As Long, _ Optional fYpos As Long, _ Optional fHelpfile As String, _ Optional fContext As Long) As String Dim sInput As String '// Initialize hdlEditBox = 0 Fgrndhdl = GetForegroundWindow '// Windows-Timer SetTimer Fgrndhdl, nIDE, 100, AddressOf TimerFunc '// Main InputBox If fXpos Then sInput = InputBox(fPrompt, fTitle, fDefault, fXpos, fYpos, fHelpfile, fContext) Else sInput = InputBox(fPrompt, fTitle, fDefault, , , fHelpfile, fContext) End If '// Kill the correct Timer KillTimer Fgrndhdl, nIDE '// Pass result InPutBoxPwd = sInput End Function Mike "N1KO" wrote: Hi, I have a login box pop up when my excel doc opens and i need the password to come up as asterix's (Like logging into windows). Is this possible? If it is can they put how. Thanks in advance |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
using a conditional suffix in text function format syntax=text(value,format_text) | Excel Worksheet Functions | |||
2 criteria lookup of text. Return text form column 3. SUMPRODUCT t | Excel Worksheet Functions | |||
Text does not display in "Text boxs" and when wrapping text in a c | Excel Discussion (Misc queries) | |||
Text not continuing to wrap for large block of text in Excel cell | Charts and Charting in Excel | |||
want to remove all text characters equal to one character in length from text string | Excel Worksheet Functions |