Registriert seit: 21.02.2015
Version(en): 2016
Hallo Excelperten,
ich möchte ich einer Excel 2003-Datei, die einen Blattschutz hat und für mehrere Benutzer freigegeben ist, den Namen des Nutzers (Initialien) abfragen.
Diese Initialen soll in VBA gespeichert und in ein Feld der Tabelle kopiert werden.
Es soll nicht der Anmeldename von Excel oder Username von Windows sein.
Hat jemand eine Idee?
Vielen Dank schon einmal!
Excelbeginner
Registriert seit: 01.11.2014
Version(en): 2007, 2010
Hi,
Gegenfrage:
Woher weiß Excel denn welcher Benutzer Änderungen vornimmt?
Könntest Du vielleicht mit einer Referenztabelle arbeiten, in der Username und Initialen hinterlegt sind?
Gruß
Max
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
im Prinzip geht das so. Du musst nur mal schauen, für 2003 sollte in dem If der erste Teil gehen.
Code:
Option Explicit
Public Sub UserInitialen()
'Variablendeklarationen
'Objekt
Dim WSHShell As Object
'String
Dim strUI As String
'Textkonstante
Const strHK As String = "HKEY_CURRENT_USER\Software\Microsoft\Office\"
'Scriptobjkt zuweisen
Set WSHShell = CreateObject("WScript.Shell")
'Wenn Excelversion < 12, dann
If Application.Version < "12.0" Then
'Registryschlüssel auslesen
strUI = WSHShell.RegRead(strHK & Application.Version & _
"\Common\Userinfo\UserInitials")
'oder nicht Wenn Excelversion < 12, dann
Else
'Registryschlüssel auslesen
strUI = WSHShell.RegRead(strHK & "Common\Userinfo\UserInitials")
'Ende Wenn Excelversion < 12, dann
End If
'Meldung ausgeben
MsgBox strUI
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 21.02.2015
Version(en): 2016
Hallo SchauAn,
vielen Dank für Deinen Tipp. Wahrscheinlich ändern sich die Gegebenheiten, da die Mitarbeiter wohl jeder ihr eigenes Excel bekommen. Den Eintrag der Initialen des Usernamens hatte ich schon umgesetzt.
Mal schauen. Ich komme ggf. auf Deinen Vorschlag zurück
Vilen Dank!
Excelbeginner