Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1704to1708
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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.


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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige