custom settings per user?

P

Pete JM

Hi, is it possible for excel to know who has loged on to the system an
then run a macro i have set up for that user?

I'm thinking of some form of IF statment macro but i have know idea o
how to get excel to know who has logged in.

We all have different logins for the computer for example pmawle o
tsmith etc..

Regards

Pet
 
J

Jan Karel Pieterse

Hi Pete,
but i have know idea of
how to get excel to know who has logged in.

This gets you the name of the person logged in:

Option Explicit

Private Const MAX_USERNAME As Long = 256

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

Function rgbGetUserName() As String

'return the name of the user
Dim tmp As String

tmp = Space$(MAX_USERNAME)

If GetUserName(tmp, Len(tmp)) Then
rgbGetUserName = TrimNull(tmp)
End If
End Function

Private Function TrimNull(item As String)
Dim pos As Integer

pos = InStr(item, Chr$(0))

If pos Then
TrimNull = Left$(item, pos - 1)
Else: TrimNull = item
End If
End Function



Regards,

Jan Karel Pieterse
Excel MVP
www.jkp-ads.com
 
R

Rob van Gelder

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

Function ActiveUser() As String
Dim str As String
str = Space(256)
If GetUserName(str, 256) Then ActiveUser = Split(str, Chr(0), 2)(0)
End Function
 
J

Jean-Yves

Hi Mark
Put first these declaration in a standard module :

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

Public Function GetUserName() As String
' By Chris Rae, 14/6/99, 3/9/00.
'Option Explicit
' This is used by GetUserName() to find the current user's
' name from the API
Dim lpBuff As String * 25
Get_User_Name lpBuff, 25
GetUserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
End Function

Then, in a sub, you can test the user name

sub test

Dim strmsgUser$
user = GetUserName
if user= "username" then
end if
end sub

Regards,

Jean-Yves
 
Top