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