Excel VBA Formating perdido en la inserción de caracteres
Tengo el siguiente código que maneja un evento de doble clic en una de mis columnas. Básicamente es una columna de notas, de modo que cuando el usuario hace doble clic en ella ... aparece una entrada y solicita la nota. El código VBA luego agrega una fecha y la inserta en la celda. Quería que las fechas estuvieran en negrita.
Sin embargo, cuando escribo un comentario por primera vez, la celda es correcta. Me gusta esto
23/08/2013: Hola
cuando vuelvo a hacer doble clic en la celda y escribo "Hola de nuevo", toda la celda se pone en negrita
23/08/2013: Hola
23/08/2013: Hola de nuevo
Creo que esto se debe a que estoy restableciendo todo el texto de la celda y no estoy agregando al texto original ... por lo tanto, perdiendo el formato original.
¿Alguien puede arrojar alguna idea sobre esto? La única forma en que calculé que podría hacerlo funcionar sería buscar y encontrar el ctrl (10) char y formatearlo de esa manera, pero por encima.
saludos 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