Clever-Excel-Forum

Normale Version: Mit VBA Usernamen speichern und einlesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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
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
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