jueves, 4 de febrero de 2016

VBA: Añadiendo comentario a celda automáticamente con el contenido de esa celda.

Días atrás un compañero me planteaba la siguiente cuestión:
¿Es posible añadir a un comentario textos desde una celda de manera automática?
Mi intención es que el texto que exista en una celda determinada se incorpore de manera automática a un comentario, y cuando cambie el texto de esa celda, cambia el comentario.


La idea es por tanto asociar la creación de un comentario al contenido de una celda de nuestra hoja de trabajo, para que cuando cambie el contenido de ésta, se inserte un comentario...

Para resolver nuestra cuestión en particular, insertamos el siguiente código dentro de la ventana de código de la Hoja donde necesitemos la funcionalidad desde el editor de VB:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
    On Error Resume Next
    'verificamos que la celda tiene contenido.
    If .Value <> "" Then
        'eliminando cualquier Comentario anterior
        .ClearComments
        'Añadimos uno nuevo...
        .AddComment
        '...donde insertamos un texto con el texto de la celda
        .Comment.Text Text:=Application.UserName & ":" & Chr(10) & Target.Value
    Else
        'eliminando cualquier Comentario anterior
        .ClearComments
    End If
End With
End Sub



Vemos el resultado..

VBA: Añadiendo comentario a celda automáticamente con el contenido de esa celda.


Si necesitáramos concretar el rango dentro de la hoja donde necesitamos esta funcionalidad, podríamos combinar nuestra macro con el método .Intersect (ver aquí)

2 comentarios:

  1. Buenas noches, sigo desde hace algún tiempo las publicaciones, y las encuentro bastante aplicativas. Tengo una consulta: cómo puedo hacer que un gráfico de líneas ocupe todo el ancho de la pantalla? El máximo tamaño de ancho lo he encontrado en la alternativa de tamaño "Oficio", pero aún es reducido. Muchas gracias por la gentil atención y mejor respuesta.

    ResponderEliminar
    Respuestas
    1. Hola!
      Al final, a la ahora de la impresión, todo depende de la impresora que tengamos a nuestra disposición.

      Te diría que configuraras tu propio tamaño, ajustando los márgenes a cero en la Configuración de página > pestaña Margenes

      No es seguro, pero de esa forma, dependiendo del papel que admita la impresora (plotter, etc) ajustarás y aprovecharás al máximo el papel...

      Espero haber comprendido tu pregunta.
      Saludos

      Eliminar