username

  • Thread starter Thread starter libby
  • Start date Start date
L

libby

Hi

Is there any way of preventing a user from changing the
Application.UserName via the Tools/Options/General.

I have a macro that performs certain code depending on
who's logged on.
I'm running Windows NT which people have to log onto so is
there any way Excel97 can look at that login and use that
as the username???
 
Libby,

There is no way to prevent the user from changing the username in
the Options dialog. You can get the Windows logon name with code
like:

Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" ( _
ByVal lpBuffer As String, nSize As Long) As Long

Sub AAA()
Dim UName As String * 255
Dim L As Long: L = 255
Dim Res As Long
Res = GetUserName(UName, L)
UName = Left$(UName, L - 1)
Msgbox UName
End Sub

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
Thanks Chip :o)

Is it possible to change the username to the windows logon
name programmatically, whenever a button on a sheet is
clicked?
That way, even if the user had changed the username, it
would be changed back when the button was clicked and so
run the correct macro.
 
Libby,

Once you have the Windows logon name and described in my previous
reply, you can use that to change Excel's username property.

Application.UserName = UName


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
Hi Chip

That works if I step through the code but when I call the
macro from a button on the sheet I get a runtime error
Method 'Username' of object_Application failed
 
Libby,

In design mode, right click on the command button and choose
Properties. In that dialog, change the TakeFocusOnClick property
to False.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
Hi Chip

I don't fully understand your code (even though it works).
When I step through it and find the Windows Logon name
which is say, "Libby", there are a lot of additional
characters. "Libby|||||||||||||"
This means that if I then make UName the
Application.UserName then my code

Select Case Application.Username
Case "Libby"
etc

doesn't work since there are x number of additional
characters after.
Is there any way that only the "Libby" bit can be used for
the application.username?

Thanks :o)
 
Hi Libby,

Are you using the Left$ function as I showed in the example?


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
Chip,

Once again your detailed explanations have helped me out on a annoying
problem, thanks so much !

Yours sincerely,

Brent McIntyre
 
Back
Top