Pregunta para elsamatilde

Matilde me ayudaste con la pregunta "comentarios en rango de celdas = contenido rango de celdas" Acomode el código a mis necesidades y funciona bien. Me quedo pendiente una pregunta pero ya la había finalizado.

Cuando la celda esta vacía me inserta un comentario y lo deja vacío. Se puede evitar esto y cuando esta vacía la celda continuar sin hacer nada?

El código me quedo asi:

Sub CreaComentarios()
Sheets("conciliación").Select
ActiveSheet.Unprotect ("978645312")
Range("z4").Select 'selecciona primer celda con observaciones
On Error Resume Next
While ActiveCell.Row dato = ActiveCell.Value 'dato=contenido de celda
ActiveCell.Offset(0, -1).Comment.Text Text:=dato 'comentario de columna-1 =dato
ActiveCell.Offset(0, -1).Comment.Visible = False 'ocultar comentario
'paso a la fila siguiente
ActiveCell.Offset(1, 0).Select
Wend
On Error GoTo 0
Sheets("conciliación").Protect ("978645312")
End Sub

Respuesta
1

Luego del While, compará si la celda tiene valor:

If activecell.value <> "" Then

'aquí sigue lo de colocar el comentario y ocultarlo

End If

'paso a la fila siguiente

Sdos

Elsa

No me funciona como quiero, lo estoy poniendo bien ?

Lo que veo que hace cuando ejecuto es recorrer todo el rango pero no inserta ningún comentario. Solo modifica (actualiza) si es que ya hay un comentario escrito.

Sub CreaComentarios()
Sheets("conciliación").Select
ActiveSheet.Unprotect ("978645312")
Range("z4").Select 'selecciona primer celda con observaciones
On Error Resume Next
While ActiveCell.Row <= 311 'ultima fila de columna con observaciones AJUSTAR a criterio (pendiente preparar para contar automáticamente)
If ActiveCell.Value <> "" Then
dato = ActiveCell.Value 'dato=contenido de celda
ActiveCell.Offset(0, -1).Comment.Text Text:=dato 'comentario de columna-1 =dato
ActiveCell.Offset(0, -1).Comment.Visible = False 'ocultar comentario
End If
'paso a la fila siguiente
ActiveCell.Offset(1, 0).Select
Wend
On Error GoTo 0
Sheets("conciliación").Protect ("978645312")
End Sub

En algún arreglo se te perdió la línea del AddComment:

Esta es la secuencia:

If ActiveCell.Value <> "" Then
dato = ActiveCell.Value 'dato=contenido de celda
ActiveCell.Offset(0, -1).AddComment
ActiveCell.Offset(0, -1).Comment.Text Text:=dato 'comentario de columna-1 =dato
ActiveCell.Offset(0, -1).Comment.Visible = False 'ocultar comentario
End If

Quedo perfecto gracias. Dejo el código entero para quien le sirva

Sub CreaComentarios()
Sheets("conciliacion").Select
ActiveSheet.Unprotect ("978645312")
Range("z4").Select 'selecciona primer celda con observaciones
On Error Resume Next
While ActiveCell.Row <= 311 'ultima fila de columna con observaciones AJUSTAR a criterio (pendiente preparar para contar automaticamente)
If ActiveCell.Value <> "" Then 'si no hay contenido continuar
dato = ActiveCell.Value 'dato=contenido de celda
ActiveCell.Offset(0, -1).AddComment 'inserta comentario
ActiveCell.Offset(0, -1).Comment.Text Text:=dato 'comentario de columna-1 =dato
ActiveCell.Offset(0, -1).Comment.Visible = False 'ocultar comentario
End If
'paso a la fila sgte
ActiveCell.Offset(1, 0).Select
Wend
On Error GoTo 0
Sheets("conciliacion").Protect ("978645312")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas