1.6k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo aus Wien!

Ich habe für ein excel sheet im vba modul1 folgenden code um den NT-Anmeldenamen zu ermitteln:

Option Explicit

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

Function BenutzerName() As String
Dim strName As String
Dim nSize As Long
Dim lngResult As Long

nSize = 100
strName = Space$(100)

lngResult = GetUserName(strName, nSize)
If lngResult <> 0 Then
BenutzerName = Left$(strName, nSize - 1)
End If
End Function

Das funktioniert auch bei mir mit dem Aufruf in einer Zelle:
=BenutzerName()

Wenn ich die Datei wen anderem schick, dann muss dieser immer erst die zelle bearbeiten, bevor sein name drin steht. zuvor steht immer noch mein anmeldename drin.

ich hätte gerne, dass das automatisch aktualisiert wird.

ich habs auch schon mit folgendem versucht - hat baer nix geholfen:

Private Sub Worksheet_Activate()
Calculate
End Sub

oder

Private Sub Worksheet_Activate()
BenutzerName
End Sub

Thnx4Tipps!
Tom

4 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Tom,
unter Nt geht es ganz einfach Msgbox Environ("username")

Gruß Hajo
0 Punkte
Beantwortet von
Hallo Hajo,

leider auch mit Environ("username") erinnert es sich an den letzten User und nicht an den aktuellen!

Danke dennoch
Tom
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Halo Tom,

warum nicht unter dieseArbeitsmappe
Option Explicit

Private Sub Workbook_Open()
Worksheets("Tabelle1").Range("A1") = Environ("Username")
End Sub

Gruß hajo
0 Punkte
Beantwortet von
super - danke!!!
...