Macro busque datos en otro libro rango variable (Luis Mondelo)

Agradecería su ayuda para crear una macro que busque datos a manera de un consultav(), uso Excel 2010, tengo 2 libros de la siguiente forma...

Libro1 - hoja1 con estos datos:

... A... B...
1... Producto... StockAgo
2........Prod1..............2......
3........Prod2..............0......
...
622... Prod621... 6...
Libro2 - hoja2 con estos datos:
................A..........B....C....D....E.....F...........G
1.........Producto......[otros datos].........Stock_Inicial
2... Prod1...
3... Prod2
...
622... Prod621

623... Prod622

624... Prod623

Necesito una macro que busque los productos de Libro2 - Hoja2 (rango A2:A_) en Libro1 - Hoja1 (rango A2:B_), si encuentra el producto que ponga el valor de StockAgo correspondiente en la columna "G" (stock_Inicial), si no lo encuentra que ponga un 0, la idea es reemplazar la siguiente formula por una macro.

=SI(ESERROR(CONSULTAV(A2,[Libro1.xlsx]Hoja1!A$2:B$700,2,FALSO)),0,CONSULTAV(A2,[Libro1.xlsx]Hoja1!A$2:B$700,2,FALSO))

Los productos son valores únicos en ambos casos.

El rango en libro1 y libro2 es variable, cada cierto tiempo se agregan algunos productos y esto se ve reflejado en ambos libros.

StockAgo del Libro1 viene a ser un Stock inicial o del mes anterior a ser usado para calcular el stock del mes siguiente en Libro2.

1 respuesta

Respuesta
2

Te mando mi solución:

-Tienes que tener abiertos los dos archivos: libro1 y libro2 (solo estos dos)

-Copia esta macro en el libro2 y ejecutala

Sub ejemplo()
'por luismondelo
Sheets("hoja2").Select
Range("a2").Select
Do While ActiveCell.Value <> ""
valor = ActiveCell
Set busca = Workbooks("libro1.xlsx").Sheets("hoja1").Range("a1:a" & Workbooks("libro1.xlsx").Sheets("hoja1").Range("a65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ActiveCell.Offset(0, 6).Value = busca.Offset(0, 1)
Else
ActiveCell.Offset(0, 6).Value = 0
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

no olvides finalizar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas