Validar datos en celdas de 2 columnas

Necesito resolver la siguiente problemática. Tengo 2 hojas de calculo en un mismo libro y en la Hoja1 La columna A se autocompleta hacia abajo desde la celda A10 hasta la celda A105 con códigos de productos que voy a ir sacando de una bodega. En la Hoja2, en la columna D tengo esos códigos ya previamente cargados y al lado (Columna E) la existencia. Necesito hacer que un código busque en la Hoja1 en orden descendente los códigos (A1, A2, A3,...) y que uno a uno los localice en la Hoja2 para ir copiando la existencia actual de la salida en la Columna E de la Hoja2.

Me gustaría que el código contenga el instrucción que he venido utilizando que sería la siguiente:

Dato = (Cada celda según corresponda)

Set busco1 = Hoja1.Range("A10:A105").Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)

Set busco2 = Hoja2.Range("D6:D1000000").Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)

       busco2.Offset(0, 1) = busco1.Offset(0, 1)

       ...

End sub

El asunto es, como le digo al Dato que sea igual a la celda A1, luego a la A2, ¿sucesivamente hasta que en esa columna ya una celda no contenga datos (esté vacía)?

1 respuesta

Respuesta
5

Necesitas un bucle (*) que recorra la col A de la hoja... lo que no queda claro es si los datos en Hoja1 empiezan en A10 porqué quieres empezar en A1 ('... al Dato que sea igual a la celda A1, luego a la A2, ..)

Suponiendo entonces que sea a partir de A10 el código te quedará así:

Sub MACRO_FORO()
'x Elsamatilde
x = 10   '1er celda de la Hoja1
'se recorre la col A hasta encontrar 1 celda vacía = fin de rango
While Hoja1.Cells(x, 1) <> ""
Dato = Hoja1.Cells(x, 1)
    Set busco1 = Hoja1.Range("A10:A105").Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)
    Set busco2 = Hoja2.Range("D6:D1000000").Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)
    busco2.Offset(0, 1) = busco1.Offset(0, 1)
'pasa a la fila sgte.
x = x + 1
Wend
MsgBox "Fin del proceso"
End Sub

La macro se coloca en un módulo y ya sabrás cómo ejecutarla. Sino te recomiendo el tema en la sección 'Macros' de mi sitio.

(*) Hay varios tipos de bucles que puedes utilizar. Aquí opté por recorrer la col A hasta encontrar una celda vacía, presuponiendo que se ha llegado al final de los datos.

Me solicitaste que atienda tu consulta que ya llevaba días en el tablón... Así lo hice y ahora te solicito que comentes o valores (Excelente o buena) mi respuesta.

Sdos!

Cuando valores esta respuesta para dar por cerrada esta consulta podré ocuparme de la nueva que has dejado en el tablón

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas