noch eine bitte um Hilfe (die immer beeindruckend, schnell, freundlich und unfassbar kompetent ist, danke an dieser Stelle dafür).
Bei dem folgenden Makro werden die Änderungen der Zellen in Kommentaren "gespeichert". Aber dies erfolgt erst nach der Änderung...
z. B.:
Zelle= "aktueller Text"
--> geändert auf
Zelle= "neuer/ veränderter Text"
Dann sollte der Text in den Kommentaren sinnvollerweise der alte Text sein, also "aktueller Text" und nicht wie aktuell "neuer/ veränderter Text".
Ich bin für jede Hilfe dankbar.
Nur zur Info: In dem Makro ist im oberen Bereich eine Rechtschreibprüfung.
Zudem noch die Frage, ob ich den Bereich in dem das Makro für die Kommentare arbeitet einschränken kann, zb nur B1:D100 (ohne die Rechtschreibprüfung einzuschränken)?
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strComment As String
Dim rngAktiveZelle As Range
Dim Wert, Werte, FalseWörter(1 To 1000), i As Long, j As Long
Werte = Split(Target.Value)
For Each Wert In Werte
With Target.Characters(InStr(Target, Wert), Len(Wert)).Font
If .Underline = xlUnderlineStyleDouble Then .Underline = xlNone
End With
Next
For Each Wert In Werte
If Application.CheckSpelling(Wert) = False Then
i = i + 1
FalseWörter(i) = Wert
End If
Next
For j = 1 To i
Target.Characters(InStr(Target, FalseWörter(j)), Len(FalseWörter(j))).Font. _
Underline = xlUnderlineStyleDouble
Next
' Fehler unterdrücken, die beim Ausführungen von Aktionen
' auf ganze Bereiche ausgelöst werden könnten
If Target.Count > 1 Then
Exit Sub
End If
With Target
' Falls noch kein Kommentar in der Zelle vorhanden ist,
' einen Erzeugen und den Ersteintrag rapportieren
If .Comment Is Nothing Then
.AddComment "Der Kommentar wurde erzeugt am: " & _
Date & " - " & Time & Chr(10) & _
"Vorgenommen durch: " & _
Application.UserName & Chr(10) & _
"Originaleintrag: " & _
.Value
Else
' Den alten Text zwischenspeichern
strComment = .Comment.Text & Chr(10)
' Den neuen Text aufbereiten und zurückschreiben
.Comment.Text strComment & Chr(10) & _
"Änderung vorgenommen am: " & _
Date & " - " & Time & Chr(10) & _
"Änderung vorgenommen durch: " & _
Application.UserName & Chr(10) & _
"Geänderter Inhalt: " & _
.Value
End If
' Automatische Anpassung der Größe des Kommentarfeldes
End With
Call Comment_AutoSize_Notizen
End Sub
Vielen Dank für eure Unterstützung,Marco