mit Application.Username lese ich den Namen des aktuellen Nutzers aus. Der Name erscheint im Format Nachname, Vorname". Wie kann ich mit VBA den Namen so umbauen, dass am Ende Vorname.Nachname rauskommt?
Vielen Dank und viele Grüße
Martin
Option Explicit
Sub Name_trenen()
Dim StName As String
StName = "Nachname, Vorname"
MsgBox Mid(StName, InStr(StName, ",") + 1) & ", " & Left(StName, InStr(StName, ",") - 1)
End Sub
Dim Name As String
Name = Vorname(CStr(myuser)) & " " & Nachname(CStr(myuser))
Function Vorname(strName As String) As String
Vorname = Right(strName, Len(strName) - InStrRev(strName, ",", , vbTextCompare))
End Function
Function Nachname(strName As String) As String
Nachname = Left(strName, InStrRev(strName, ",", , vbTextCompare) - 1)
End Function
Sub t()
Dim strInput As String, strOutput As String
Dim arrHilfe As Variant
strInput = "Nachname, Vorname"
arrHilfe = Split(strInput, ", ")
strOutput = arrHilfe(1) & "." & arrHilfe(0)
MsgBox strOutput
End Sub
cuUm den aktuellen Benutzernamen in Excel VBA auszulesen und das Format von „Nachname, Vorname“ in „Vorname.Nachname“ zu ändern, folge diesen Schritten:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Erstelle ein neues Modul, indem du mit der rechten Maustaste auf "VBAProject (DeineDatei)" klickst und "Einfügen" > "Modul" auswählst.
Kopiere den folgenden VBA-Code in das Modul:
Option Explicit
Sub UserNameUmwandeln()
Dim userName As String
Dim formattedName As String
' Lese den Benutzernamen aus
userName = Application.UserName
' Wandle den Benutzernamen um
formattedName = FormatName(userName)
' Zeige das Ergebnis an
MsgBox formattedName
End Sub
Function FormatName(strName As String) As String
Dim arr() As String
arr = Split(strName, ", ")
FormatName = Trim(arr(1)) & "." & Trim(arr(0))
End Function
Schließe den VBA-Editor und führe das Makro "UserNameUmwandeln" aus.
Fehler: Wenn der Benutzername nicht im erwarteten Format "Nachname, Vorname" vorliegt, zeigt das Skript möglicherweise einen Fehler an.
Lösung: Stelle sicher, dass der Benutzername im richtigen Format gespeichert ist. Du kannst auch eine Fehlerbehandlung einfügen, um unerwartete Formate abzufangen. Füge dazu den folgenden Code in die Funktion FormatName ein:
If UBound(arr) < 1 Then
FormatName = "Unbekannt"
Exit Function
End If
Neben der Verwendung von Application.UserName gibt es auch andere Methoden, um den Benutzernamen in Excel VBA auszulesen. Eine Möglichkeit ist die Verwendung der Umgebungsvariablen:
Dim userName As String
userName = Environ("USERNAME")
Diese Methode kann in Situationen nützlich sein, in denen der Benutzername nicht über die Excel-Einstellungen definiert ist.
Hier sind einige praktische Beispiele, wie du den Benutzernamen in verschiedenen Szenarien verwenden kannst:
Benutzerbegrüßung: Du kannst den Benutzernamen verwenden, um personalisierte Begrüßungen in deinen Excel-Dokumenten zu erstellen:
MsgBox "Willkommen, " & Application.UserName & "!"
Namen umdrehen für Dokumentenbenennung: Wenn du Dateien nach dem Benutzernamen benennen möchtest, kannst du den oben genannten Code zum Formatieren des Namens verwenden.
Application.UserName-Funktion und andere VBA-Funktionen verwendest.1. Wie kann ich den Benutzername in Excel ändern?
Der Benutzername wird in den Excel-Optionen unter "Datei" > "Optionen" > "Allgemein" > "Benutzername" festgelegt.
2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code zur Verwendung von Application.UserName funktioniert in allen aktuellen Excel-Versionen, die VBA unterstützen. Achte darauf, dass die Benutzer ihre Namen im richtigen Format eingeben.