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

Kommentar mit VBA

Forumthread: Kommentar mit VBA

Kommentar mit VBA
26.07.2019 07:13:55
Micha
Hallo,
ich habe ein Code, der sobald in eine Zelle etwas eingetragen wird ein Datum in eine Spalte setzt.
Nun soll auch als Kommentar die Benutzername eingetragen werden und sollte etwas in der Zelle geändert werden ein neues Datum mit dem Benutzernamen darunter setzt.
Nur leider bekomme ich das mit dem Kommentar nicht hin.
Jemand ein Lösungsvorschlag? :-)
Hier mein Versuch

Private Sub Worksheet_Change(ByVal Target As Range)
'ActiveSheet.Unprotect Password:="123"
strComment = TextBox1
If Intersect(Target, Range("c3:c2142")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
If Target = "" Then
Target.Offset(0, 7).ClearContents
Else:
Target.Offset(0, 7) = CDate(Format(Now, "dd.mm.yyyy"))
End If
If Target.Comment Is Nothing Then
strComment = TextBox1
.AddComment
With .Comment
.Text Text:=Application.UserName & ":" & Chr(10) & Format(Now, "DD" & "." & "MM"  _
& "." & "YY") & strComment
.Shape.TextFrame.AutoSize = True
End With
Else
.Comment.Text Text:=.Comment.Text & Chr(10) & Application.UserName & Chr(10) &   _
Format(Now, "DD" & "." & "MM" & "." & "YY") & strComment
End If
End With
Next
'ActiveSheet.Protect Password:="123" ', UserInterfaceOnly:=True, DrawingObjects:=False,  _
Contents:=True, Scenarios:=False
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Kommentar mit VBA
26.07.2019 09:37:40
Beverly
Hi Micha,
Private Sub Worksheet_Change(ByVal Target As Range)
'ActiveSheet.Unprotect Password:="123"
Dim strComment As String
If Intersect(Target, Range("c3:c2142")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
If Target = "" Then
Target.Offset(0, 7).ClearContents
Else:
Target.Offset(0, 7) = CDate(Format(Now, "dd.mm.yyyy"))
End If
strComment = TextBox1
If Target.Comment Is Nothing Then
Target.AddComment
With Target.Comment
.Text Text:=Application.UserName & ":" & Chr(10) & _
Format(Now, "DD" & "." & "MM" & "." & "YY") & strComment
.Shape.TextFrame.AutoSize = True
End With
Else
Target.Comment.Text Text:=Target.Comment.Text & Chr(10) & _
Application.UserName & Chr(10) & _
Format(Now, "DD" & "." & "MM" & "." & "YY") & strComment
End If
'ActiveSheet.Protect Password:="123" ', UserInterfaceOnly:=True, DrawingObjects:=False, _
Contents:=True, Scenarios:=False
End Sub


Anzeige
AW: Kommentar mit VBA
26.07.2019 11:50:47
Micha
Funktioniert
Zwar wird der Kommentar in der aktuellen Zelle eingefügt und nicht wie ich wollte in der Zelle (+7),
aber so gehts auch...
DANKE
and Thema Closed
AW: Kommentar mit VBA
26.07.2019 12:00:37
Werner
Hallo Micha,
da brauchst du doch nur beim Eintragen des Kommentars bei Target auch nur den entsprechenden Offset (Versatz) mit anzugeben wie beim Eintragen des Datums auch schon.
strComment = TextBox1
If Target.Offset(, 7).Comment Is Nothing Then
Target.Offset(, 7).AddComment
With Target.Offset(, 7).Comment
.Text Text:=Application.UserName & ":" & Chr(10) & _
Format(Now, "DD" & "." & "MM" & "." & "YY") & strComment
.Shape.TextFrame.AutoSize = True
End With
Else
Target.Offset(, 7).Comment.Text Text:=Target.Offset(, 7).Comment.Text & Chr(10) & _
Application.UserName & Chr(10) & _
Format(Now, "DD" & "." & "MM" & "." & "YY") & strComment
End If
Gruß Werner
Anzeige
AW: Kommentar mit VBA
26.07.2019 12:57:55
Beverly
Hi Micha,
ich habe nur deinen Code genommen wie er war. Du kannst doch einfach so wie in dieser Codezeile Target.Offset(0, 7).ClearContents in meinem Code bei Target.AddComment und jeweils bei Target.Comment ebenfalls das Offset verwenden.


Anzeige
AW: Kommentar mit VBA
26.07.2019 09:40:46
fcs
Hallo Micha,
Private Sub Worksheet_Change(ByVal Target As Range)
'ActiveSheet.Unprotect Password:="123"
strComment = TextBox1
If Intersect(Target, Range("c3:c2142")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
If Target = "" Then
Target.Offset(0, 7).ClearContents
Else:
Target.Offset(0, 7) = CDate(Format(Now, "dd.mm.yyyy"))
End If
With Target
If .Comment Is Nothing Then
strComment = TextBox1
.AddComment
With .Comment
.Text Text:=Application.UserName & ":" & Chr(10) & Format(Now, "DD.MM.YY") &  _
strComment
.Shape.TextFrame.AutoSize = True
End With
Else
.Comment.Text Text:=.Comment.Text & Chr(10) & Application.UserName & Chr(10) & _
Format(Now, "DD.MM.YY") & strComment
End If
End With
'ActiveSheet.Protect Password:="123" ', UserInterfaceOnly:=True, DrawingObjects:=False, _
Contents:=True, Scenarios:=False
End Sub
LG
Franz
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