Excel VBA-Formatierung beim Einfügen von Zeichen verloren

Ich habe den folgenden Code, der ein Doppelklick-Ereignis in einer meiner Spalten behandelt. Grundsätzlich handelt es sich um eine Notes-Spalte. Wenn der Benutzer darauf doppelklickt, wird eine Eingabe angezeigt und die Notiz abgefragt. Der VBA-Code hängt dann ein Datum an und fügt es in die Zelle ein. Ich wollte, dass die Daten fett gedruckt werden.

Wenn ich jedoch zum ersten Mal einen Kommentar eingebe, ist die Zelle korrekt. So was

23.08.2013: Hallo

Wenn ich erneut auf die Zelle doppelklicke und 'Hi again' eingebe, wird die gesamte Zelle fett dargestellt

23.08.2013: Hallo zusammen

23.08.2013: Hallo nochmal

Ich denke, das liegt daran, dass ich den gesamten Zellentext zurücksetze und nicht an den Originaltext anhänge. Dadurch geht die Originalformatierung verloren.

Kann jemand irgendwelche Ideen dazu abgeben. Der einzige Weg, wie ich vermutete, es zum Laufen zu bringen, wäre, das Zeichen ctrl (10) zu suchen und es so zu formatieren, aber es ist übertrieben.

Grüße D

Option Explicit

Const STATUS_COL As Integer = 10
Const NOTES_COL As Integer = 13

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim newVal As String
Dim strNote As String
Dim lngPos As Long

If Target.Count > 1 Then GoTo exitHandler

Application.EnableEvents = False

On Error Resume Next

 If Target.Column = NOTES_COL Then 'Add a note
    lngPos = Len(Target.Value)

    strNote = InputBox(Prompt:="Enter Note", _
      Title:="Notes", Default:="")

    If (Len(Trim(strNote)) > 0) Then
        If Target.Value = "" Then
          newVal = Date & ": " & strNote
        Else
          newVal = Target.Value + Chr(10) & Date & ": " & strNote
        End If
        Target.Value = newVal     'set the new value

        Target.Characters(Start:=lngPos + 1, Length:=11).Font.Bold = True
    End If
End If

exitHandler:
  Application.EnableEvents = True
End Sub

Antworten auf die Frage(1)

Ihre Antwort auf die Frage