Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kommentar Benutzername "Office"

Kommentar Benutzername "Office"
Markus
Hallo zusammen
Heute konnte ich folgenden Code im Geschäft testen.
Es ist alles i.O., ausser das es den Benutzername der Windows-Anmeldung generiert. Da bei uns im Geschaft die Anmeldung via Kurzzeichen (d346) erfolgt ist es schwierig zu erruieren wer den Kommentar geschrieben hat. In der Office-Oberfläche ist aber jeder mit dem kompletten Namen hinterlegt.
Ist es möglich, diesen Namen in den Code zu integrieren ?
Habe folgenden bereits probiert: "Application.UserName"geht aber leider nicht :-(
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Sh.Cells(3, 5).Resize(Sh.Rows.Count - 2)) Is Nothing Then Exit Sub
Dim cmt As Comment
Dim strCmt As String
Dim lngTxt As Long
With Target
If .Value = "O" Then
strCmt = Environ("Username") & Chr(10) & Format(Date, "DD.MM.YYYY") & " " & Format( _
_
Time, "hh:mm") & ":" & Chr(10)
lngTxt = Len(Environ("Username"))
If Not .Comment Is Nothing Then .Comment.Delete     'alten Kommentar löschen
Set cmt = .AddComment(strCmt)
cmt.Visible = True  ' Kommentar einblenden
cmt.Shape.Width = 150
cmt.Shape.Height = 300
cmt.Shape.Select   ' Kommentarfeld aktivieren
With cmt.Shape.Fill
.Solid
'                 .ForeColor.RGB = RGB(191, 191, 191)
.Transparency = 0#
End With
With cmt.Shape.TextFrame.Characters.Font
.Name = "Tahoma"
.FontStyle = "Standard"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = True
.Underline = xlUnderlineStyleNone
End With
With cmt.Shape.TextFrame
.Characters(Start:=1, Length:=lngTxt).Font.FontStyle = "Fett"
.Characters(Start:=lngTxt + 2, Length:=16).Font.FontStyle = "Kursiv"
End With
End If
End With
Set cmt = Nothing
End Sub

Hoffentlich kann mir jemand helfen.
Gruss Markus
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kommentar Benutzername "Office"
21.11.2011 19:56:25
Hajo_Zi
Hallo Markus,
Application.UserName ist korrekt. Das ist der in Excel eingetragene Nutzer.
Gruß Hajo
AW: Kommentar Benutzername "Office"
21.11.2011 21:18:24
Markus
Hallo Hajo
Danke für den Tip.
Folgender Code funktioniert aber nicht:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Sh.Cells(3, 5).Resize(Sh.Rows.Count - 2)) Is Nothing Then Exit Sub
Dim cmt As Comment
Dim strCmt As String
Dim lngTxt As Long
With Target
If .Value = "O" Then
strCmt = Environ("Application.UserName") & Chr(10) & Format(Date, "DD.MM.YYYY") & " _
" & Format(Time, "hh:mm") & ":" & Chr(10)
lngTxt = Len(Environ("Application.UserName"))
If Not .Comment Is Nothing Then .Comment.Delete     'alten Kommentar löschen
Set cmt = .AddComment(strCmt)
cmt.Visible = True  ' Kommentar einblenden
cmt.Shape.Width = 150
cmt.Shape.Height = 300
cmt.Shape.Select   ' Kommentarfeld aktivieren
With cmt.Shape.Fill
.Solid
'                 .ForeColor.RGB = RGB(191, 191, 191)
.Transparency = 0#
End With
With cmt.Shape.TextFrame.Characters.Font
.Name = "Tahoma"
.FontStyle = "Standard"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = True
.Underline = xlUnderlineStyleNone
End With
With cmt.Shape.TextFrame
.Characters(Start:=1, Length:=lngTxt).Font.FontStyle = "Fett"
.Characters(Start:=lngTxt + 2, Length:=16).Font.FontStyle = "Kursiv"
End With
End If
End With
Set cmt = Nothing
End Sub
Was mache ich falsch ?
Liegt es am "Environ" ?
Gruss Markus
Anzeige
AW: Kommentar Benutzername "Office"
21.11.2011 21:44:02
Hajo_Zi
Hallo Markus,
du solltest auch das schreiben was Du vorgeschlagen hast und nicht Environ("Application.UserName")
Gruß Hajo
AW: Kommentar Benutzername "Office"
21.11.2011 22:15:55
Markus
Hallo Hajo
Sorry, ich verstehe es nicht ...
Ich kann "Application.UserName"schreiben wie ich will. Mit oder ohne "Environ, () und """, klappt einfach nicht.
Gruss Markus
Anzeige
AW: Kommentar Benutzername "Office"
21.11.2011 22:33:15
Markus
Hallo Hajo
O.K. , jetzt hab ich es verstanden. Sorry, bin halt wirklich ein "grünschnabel" was VBA betrifft ;-)
strCmt = Application.UserName & Chr(10) & Format(Date, "DD.MM.YYYY") & " " & Format(Time, "hh:mm") & ":" & Chr(10)
lngTxt = Len(Application.UserName)
Jetzt klappt es :-)
Dankeschön
Gruss Markus
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige