En esta oportunidad veremos cómo programar el agregado de comentarios en diferentes eventos.
Al cambio en celdas.
1 - El primer ejemplo se trata de agregar un comentario a medida que vamos rellenando la tabla con datos. Si el importe registrado en col C es < a cierto valor se indicará con un comentario.
NOTA: para este ejemplo también es válida la opción de dejar un formato condicional. Pero el tema que nos ocupa hoy son los comentarios.
En el Editor, seleccionaremos el objeto HOJA donde se encuentre nuestra tabla de datos y allí colocaremos el siguiente código. El método utilizado es AddComment.
Private Sub Worksheet_Change(ByVal Target As Range)
'no se evalúan los cambios en fila 1
If Target.Row = 1 Then Exit Sub
'si el cambio se da en col 3 (C)
If Target.Column = 3 Then
'si la cifra es < 100 se deja nota
If Target.Value < 100 Then Target.AddComment "Atención con este importe."
End if
End Sub
2 - En el segundo ejemplo se trata de agregar texto a comentarios que ya se encuentran en una celda.
Se trata de rellenar una tabla de días. Como son diferentes usuarios los que pueden registrar información se coloca un comentario por cada usuario que ha modificado las celdas de un rango de días. La información que se agrega es el nombre de usuario y el importe que ha registrado.
Private Sub Worksheet_Change(ByVal Target As Range)
'no se evalúan los cambios en fila 1
If Target.Row = 1 Then Exit Sub
'si el cambio se da en tabla de días ubicada a partir de col G
If Target.Column > 6 Then
'se agrega cada usuario e importe registrado en celdas de días
On Error Resume Next
comento = Target.Comment.Text
'si es la 1ra vez se crea el comentario
If comento = "" Then
Target.AddComment Application.UserName & "_" & Target.Value
Else
Target.Comment.Text Text:=comento & Chr(10) & Application.UserName & "_" & Target.Value
End If
End If
End Sub
Primero se evalúa si la celda ya tiene comentarios. Si no lo tiene se agregará con el método AddComment visto en punto anterior.
Si lo tiene, se agrega un salto de línea y el nuevo comentario que será el nombre del usuario y el importe ingresado.
Agregar comentarios desde un proceso general.
También es posible contar con un proceso que se ejecutará desde cualquier otro evento, por ejemplo al clic de un botón, y allí evaluar si colocar o no un comentario en algunas celdas.
En el ejemplo se trata de armar un resumen de cierta tabla de datos y evaluar el resultado de cierta columna. Si es < a cierto valor se dejará un comentario en esa celda.
Sub pasaTotal()
'fin del rango de datos
fini = Range("E1").End(xlDown).Row
desti = Range("E" & Rows.Count).End(xlUp).Row + 1
'se copia el rango E:F
Range("E2:F" & fini).Copy
Range("E" & desti).PasteSpecial xlPasteValues
'se recorre el rango y coloca comentarios si el total es < 10
For i = desti To Range("E" & Rows.Count).End(xlUp).Row
If Range("F" & i) < 10 Then Range("F" & i).AddComment "Revisar valor"
Next i
End Sub
No hay comentarios.:
Publicar un comentario