17.04.2019, 22:12 (Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2019, 05:36 von Kuwer.
Bearbeitungsgrund: .Value durch .Formula ersetzt
)
Hallo,
(17.04.2019, 16:50)cgo schrieb: Daher war die Idee das gepostete Makro weiterhin zu nutzen und die Kommentare irgendwie von der Zwischenablage unberührt zu lassen, d.h. nicht mit zu kopieren bzw. nicht mit einzufügen.
teste es mal damit:
'Automatisches Einfügen eines Kommentar in Spalte A bei Ändern des Zellinhalts PrivateSub Worksheet_Change(ByVal Target As Range) Dim varT AsVariant IfNot Intersect(Target, Columns("A:A")) IsNothingAnd Target.Count = 1 Then varT = Target.Formula OnErrorResumeNext Application.EnableEvents = False Application.Undo If Target.Comment IsNothingThen Target.AddComment.Text Application.UserName & Chr(10) & Date & " " & Format(Time, "hh:mm") Else Target.Comment.Text Target.Comment.Text & Chr(10) _ & Application.UserName & Chr(10) & Date & " " & Format(Time, "hh:mm") EndIf Target.Formula = varT Application.EnableEvents = True OnErrorGoTo 0 EndIf EndSub
Besten Dank! Das funktioniert prima für die Spalte A : ) Vielen Dank!
Kopiere ich jedoch eine Zelle aus Spalte A in eine Zelle einer anderen Spalte, dann ist nach wie vor das Datum enthalten. Hast du eine Idee, wie man dies verhindern kann?
Ich habe noch eine zweite Frage: kann man Excel so konfigurieren, dass es beim Löschen des Inhalts einer Zelle auch automatisch den Kommentar entfernt?!
18.04.2019, 18:18 (Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2019, 18:24 von snb.)
Code:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub
If Target.Comment Is Nothing Then Target.AddComment Target.Comment.Text Target.Comment.Text & Application.UserName & Format(Now, " dd.mm.yyyy hh:mm") & vbLf If Target = "" Then Target.Comment.Delete End Sub
oder
Code:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub
On Error Resume Next Target.AddComment With Target.Comment .Text .Text & Application.UserName & Format(Now, " dd.mm.yyyy hh:mm") & vbLf If Target = "" Then .Delete End With End Sub
das geht doch nicht. der Change-Code wirkt auf die eingefügten Daten, der alte Kommentar ist mit Deiner Variante dann weg. Uwe hat deswegen das Undo drin, nimmt vorher aber die neuen Daten auf und packt sie dann wieder rein.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)