Macro simule consultav para rango variable desde otro libro

Buenos días, estoy usando Excel 2010, necesito su ayuda para generar una macro que haga el equivalente a un consultav pero buscando los datos en otro libro y sobre un rango variable.

actualmente estoy usando esta formula...

=SI(ESERROR(CONSULTAV(A2,[Datos.xlsx]Stock!C$2:D$700,2,FALSO)),0,CONSULTAV(A2,[Datos.xlsx]Stock!C$2:D$700,2,FALSO))

por el momento me sirve, pero al ser mas de 600 registros únicos (no se repite ningún producto) y en un rango variable tengo que especificar un rango mayor (700), aparte de repetir básicamente la misma formula 700 veces.

tengo un libro principal "Datos.xlsx" con varias hojas, en la hoja "Productos" es donde se registran todos los productos y cada cierto tiempo se adicionan algunos.

luego tengo un libro por cada mes, cada libro copia la lista de productos del Libro "Datos" hoja "Productos"

la idea es que luego cada libro copie en el libro principal (Datos.xlsx) en una hoja "Stock" la lista de productos y la cantidad, esto para ser tomado por el mes siguiente como un stock inicial, entonces tenemos:

en el libro "Datos.xlsx" en la hoja "Stock" un listado de esta forma...

..............A.................B...................C..............D................E...................F...

1.......Producto....StockAgo.....Producto....StockSet......Producto......StockOct

2........Prod1..............2...............Prod1...........4..............Prod1

3........Prod2..............0...............Prod2...........2..............Prod2

4........Prod3..............4...............Prod3...........6..............Prod3

....

622....Prod621...........6......... ....Prod621........4.............Prod621

623........................................... .Prod622.......10...........Prod622

624................................................................................ Prod623

en el Libro "Octubre.xlsb" en la hoja1 tengo un listado de esta forma...

................A..........B....C....D....E.....F........G
1.........Producto......[otros datos]...........Cant
2...........Prod1.....................................=si(eserror(consultav(A2,[Datos.xlsx]Stock!C2:D.....
3...........Prod2<br class="scayt-misspell" data-scayt_word="Prod2" data-scaytid="4266" />4...........Prod3
....


622.......Prod621

623.......Prod622

624.......Prod623

como la lista de productos del libro "Octubre" hoja "Hoja1" se copia automáticamente del libro Datos.xlsx hoja "Productos", puede darse el caso que tenga mas productos de los que había en setiembre.

lo que necesito es una macro que en el libro "Octubre" haga el equivalente a la función consultav() para no tenér que repetir la formula 700 veces y en caso no encuentre el producto (por ser un producto nuevo) que ponga un 0, considerando que los valores en caso se copien tendrían que ser con copiado especial solo valores.

disculpen lo largo del post, espero se entienda y me puedan ayudar.

gracias

Añade tu respuesta

Haz clic para o