Comentarios en rango de celdas = contenido rango de celdas

Hola expertos. Hace tiempo le ando atrás a este problema no le encuentro solución.

Como puedo hacer para copiar el contenido de un rango y pegarlo como comentario en otro rango ?

por ejemplo

A B

1 r

2 t

3 h

4 u

5 o

Copiar el rango A1:A5 y pegarlo como comentario en el rango B1:B5

1 Respuesta

Respuesta
1

La siguiente macro coloca cada texto de cada celda en la celda de al lado. Por ahora recorre hasta la fila 5, ajustá esto a tu criterio (dejo un comentario).

No me quedó claro si debía borrar el contenido del rango original, así que lo agregué al final, es opcional y podés omitir estas líneas.

Sub CreaComentarios()
'x Elsamatilde
'recorre el rango A1:A5 
Range("A1").Select
While ActiveCell.Row <= 5     'AJUSTAR a criterio
dato = ActiveCell.Value
ActiveCell.Offset(0, 1).AddComment
 ActiveCell.Offset(0, 1).Comment.Text Text:=dato
'paso a la fila sgte
ActiveCell.Offset(1, 0).Select
Wend
'opcional: borrar de datos el rango original
fila2 = ActiveCell.Row - 1
Range("A1:A" & fila2) = ""
End Sub

Probala y si es lo que necesitas no olvides finalizar la consulta.

PD) No olvides mencionar tu versión Excel en las consultas.

Me tira error 400 si dejo la opción de borrar, igualmente no la necesito. Funciona bien pero se me paso dejarte un dato, la mayoría de las celdas las voy a tener vacías, y cuando alguna celda del rango esta vacía se traba.

Si quiero llevar el comentario a otra pestaña, con ActiveCell.Offset se podría hacer ?

Uso excel 2010

Gracias por tu ayuda

Dejala así con la línea agregada para controlar posible error:

Sub CreaComentarios()
'x Elsamatilde
'recorre el rango A1:A5
Range("A1").Select
On Error Resume Next
While ActiveCell.Row <= 5 'AJUSTAR a criterio
dato = ActiveCell.Value
ActiveCell.Offset(0, 1).AddComment
 ActiveCell.Offset(0, 1).Comment.Text Text:=dato
'paso a la fila sgte
ActiveCell.Offset(1, 0).Select
Wend
On Error GoTo 0
'opcional: borrar de datos el rango original
fila2 = ActiveCell.Row - 1
Range("A1:A" & fila2) = ""
End Sub

ActiveCell.Offset(fila,col) te permite hacer referencia a tantas filas y col de distancia de la celda activa, no sirve para otra hoja.

Tendrías que utilizar algo así:

dato = ActiveCell.Value
Sheets("Hoja2"). Cells(fila, col). AddComment
Sheets("Hoja2"). Cells(fila, col). Comment.Text Text:=dato

Donde le tenés que indicar la hoja y la celda donde quieras colocar el comentario. En la sección Macros de mi sitio podes observar otros modos de hacer referencia a una celda.

Con respecto al error al borrar al final revísalo nuevamente xq esa parte no da error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas