habe folgenden Code von einem Ex Kollegen bekommen.
Dieser klappt auch super.
Ich kann die Kennung angebenund erhalte den Kompletten Benutzernamen in einer MSGbox.
Was ich aber gerne möchte und nicht schaffe ist es aus dem Kompletten Namen die kennung herauszubekommen.
Würde mich sehr freuen wenn mir jemand helfen könnte.
Dafür im voraus schon einmal vielen Dank !
die Funktion "BenutzerNameKurz" würde schon das passende ergebniss liefern aber leider eben nur von dem aktuell angemeldeten Benutzer und nicht von einem benutzer von dem ich den Namen vorgeben.
Hier der Code.
Option Explicit
Private Enum EXTENDED_NAME_FORMAT
NameSamCompatible = 2
End Enum
Private Declare Function GetUserNameEx Lib "secur32.dll" Alias "GetUserNameExA" (ByVal _
NameFormat As EXTENDED_NAME_FORMAT, ByVal lpNameBuffer As String, ByRef nSize As Long) As Long
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Sub Benutzername()
MsgBox BenutzerNameLang("chris")
End Sub
Function BenutzerNameLang(Optional Kennung As String) As String
Dim sBuffer As String, ret As Long, u
sBuffer = String(256, 0)
ret = Len(sBuffer)
If Kennung "" Then
Set u = GetObject("WinNT://" & Replace(Kennung, "\", "/") & ",User")
BenutzerNameLang = Trim(Replace(u.FullName, "*", ""))
Set u = Nothing
ElseIf GetUserNameEx(NameSamCompatible, sBuffer, ret) 0 Then
Set u = GetObject("WinNT://" & Replace(Left$(sBuffer, ret - 1), "\", "/") & ",User")
BenutzerNameLang = Trim(Replace(u.FullName, "*", ""))
Set u = Nothing
End If
End Function
Function BenutzerNameKurz() As String
Dim strUserName As String
strUserName = VBA.String(100, VBA.Chr$(0))
GetUserName strUserName, 100
BenutzerNameKurz = VBA.UCase(VBA.Left$(strUserName, VBA.InStr(strUserName, VBA.Chr$(0)) - 1) _
)
End Function