.
Buenas noches, Yezzi
Leí tu consulta y me preguntaba por qué solicitas una macro cuando me parece que es la típica aplicación de la función BUSCARV(), sobre todo por la existencia de un ID común.
Para hacerlo simple, vamos a suponer que tu listado del libro 2 estuviese en la "Hoja1" y en el rango A6:G240. Algo así como esto:
Y si el primer ID a actualizar estuviera en la celda A4 de tu archivo reportemaestro.xls, escribe ésta fórmula en la celda C4 :
=BUSCARV($A4;[Libro2.xlsx]Hoja1!$A$6:$G$240;7;FALSO)
Ten en cuenta si usas comas o punto y coma para separar los argumentos. Yo usé ";" en este ejemplo. Asígnale el formato deseado y, luego, copia esta celda y pégala en las restantes de esta misma columna.
Esta fórmula creará un vínculo con el segundo archivo y, cuando abras ambos archivos, te actualizará el valor.
Entonces, la función Buscarv necesita tres argumentos más un cuarto opcional.
El primero es el valor que se busca en la base; ésta, a su vez, es el segundo argumento de la fórmula. El uso del signo $ es para que siempre se refiera a ese rango aún copiando la fórmula a otras celdas/hojas.
El tercer argumento indica qué columna de la base indicada debe ser mostrada donde está la fórmula. Cómo intento mostrar las descripciones, indiqué la columna 7, para que traiga el dato de "Valor nuevo". Si te fijas en la imagen verás que coloqué el número correspondiente a cada columna. Si pegas esta fórmula en otra celda y cambias el número de columna, traerá lo que haya en ella.
Finalmente el cuarto argumento opcional, cuando está en 0 (Falso) obliga a una búsqueda exacta de lo que está en la celda A4. Si no encuentra ese código, la fórmula devolverá #N/A! (No disponible)
Para evitar ese #N/A! puedes usa esta variante que es similar:
=SI(ESNOD(BUSCARV($A4;[Libro2.xlsx]Hoja1!$A$6:$G$240;7;FALSO));"ID inexistente";BUSCARV($A4;[Libro2.xlsx]Hoja1!$A$6:$G$240;7;FALSO))
Bien, esta fórmula devolverá "ID inexistente"; si el código o nombre en la celda A4 no existe en la columna G de la base que creastem, pero si lo encuentra actualiza el valor
Bien, Yezzi, espero que esto te sirva para resolver tu problema (sobre todo a esta hora).
Cualquier duda, vuelve a consultarme, ¿si?
Saludos
Fernando
(Buenos Aires, Argentina)
.