Cómo insertar un dato en la siguiente celda vacía usando variables

Hago correr un procedimiento para extraer unos códigos de una determinada columna, para luego guardarla en una variable y posteriormente, usar esta para insertarlo en la siguiente celda vacía de la columna “A” de otra hoja “Reporte”, del mismo libro. Como estos códigos se repiten todos en distintas veces, apliqué el siguiente ciclo:

Do While ActiveCell = u1

ActiveCell.Offset(1, 0).Select

Loop

Set u2 = ActiveCell ‘guarda inicio de siguiente código

Worksheets("Reporte").Range("A1").End(xlDown).Offset(1, 0).Value = u1 ?línea con error

Respuesta
2

No queda claro si tu columna está ordenada, pareciera que sí por eso la recorres con DO hasta encontrar una celda <> u1

La expresión: End(xlDown). Offset(1, 0) te dará error cuando aún esa col no tiene datos, porque con End(xlDown) se va hasta el final de la hoja y luego no puede avanzar una fila mas con el Offset.

Para encontrar la primer fila libre utilicen siempre esta instrucción (ajustando la col):

Worksheets("Reporte").Range("A" & Rows.count).End(xlUp). offset(1,0)= u1

Si esto resuelve tu consulta no olvides valorar ESTA respuesta. Sino aclara un poco más o deja una imagen para comprender cómo está organizada tu tabla de datos.

Muchísimas gracias Elsa, me resultó de maravilla tu ayuda.

Y sí, la columna está ordenada.

Solo resta entonces que valores la respuesta recibida marcando Buena o Excelente.

A continuación de este mensaje verás algo así:

Sdos!

¡Gracias!  Disculpa pero no puedo pinchar excelente, disculpa

Está todo bien, la consulta está correctamente valorada y cerrada.

Sdos!

1 respuesta más de otro experto

Respuesta

A ver si entemdi

1 - quiere buscar todos las veces que se repite in código y pegarlo en la hoja reporte

2 - copiar la columna de los código en la hoja reporte

Mira a ver si así te resulta major

Do While ActiveCell <> ""

if activecell = u1 then

Worksheets("Reporte").Range("A1").End(xlDown).Offset(1, 0) = activecell

ActiveCell.Offset(1, 0).Select

Loop

Esta macro hace es que buscar e n las celda el código u1 y pegarlo en la hoja reporte

Si te silve nomolvides valora para cerrar la pregunta 

¡Gracias! 

Agradezco tu ayuda Aneudys, pero me continúa haciendo error la línea:

Worksheets("Reporte").Range("A1").End(xlDown).Offset(1, 0) = activecell

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas