Actualizar datos de un libro excel en otro

Tengo la siguiente duda:
Tengo un libro excel con distintos productos, estos productos se actualizan diariamente en un libro excel. Ese libro se tiene que compaginar con otro libro, que es el de 3 trabajadores, para que los trabajadores sepan cual son los nuevos productos que se han añadido.

En el libro de origen se actualizan los productos por fila. Hay 15 columnas con características propias de cada uno de los modelos. Los nuevos productos se van añadiendo a las distintas filas, siempre en la última que se haya escrito.
En el libro destino sería igual, pero la única diferencia que son 16 columnas pq en la primera columna la (a) hay checkbox.
Mi duda es la siguiente, ¿Se podría copiar los datos del libro origen al destino, de manera automática, con un buscarv? De manera que se compare los 2 libros y cuando halla un nuevo producto, se sincronice y se copien los datos.

1 Respuesta

Respuesta
2

Te comento lo siguiente, con la función buscarv podrías hacerlo, pero eso implicaría que la tienes que poner en todas las filas de tu libro destino, y también, la tienes que poner en cada una de las 15 columnas para llenar toda la fila completa.

Lo que no entiendo es, si en el destino todavía no existe el nuevo producto, cómo vas a buscarlo en el origen.

Cómo requieres la actualización: A) cada vez que se agregue un registro en el origen, se copie automáticamente en el destino, o B) que estando en el destino, verifique todas las líneas que faltan que se encuentran en el origen y entonces tome las líneas del origen y las pase al destino.

Como sea, cualquiera de las 2 opciones tendría que ser con una macro, hay dos tipos de macros, la que está activa y siempre que haces un cambio a tu hoja origen, automáticamente trabaja la macro; el otro tipo de macro es que tú la ejecutes en el momento que desees. No se recomienda la macro activa, porque consume recursos y puede ser que un cambio que hagas a tu hoja, se tarde más tiempo.

Hola

Efectivamente es como dices, cada vez que se haga un cambio en el libro de origen, este inmediatamente se copie en el destino. Puesto que dices, que activo consumiría mucho recurso, estaría bien la idea de crear un botón, y cada vez que se pulse el botón si hay cambios en la de origen se haga también en destino.No?

Por lo que estoy leyendo efectivamente es macro, pero por desgracia no tengo conocimiento en las macro. Se me ocurría lo de buscarv, porque como lo que hace es comparar ambos libros y ver la diferencia (los nuevos productos) , copiarlos y pegarlos en la respectiva fila que vaya.

Gracias por contestar, se agradece mucho

Un saludo

Te mando una macro, para actualizar la hoja destino.
Primero vamos a Crear la macro, lo que debes hacer es lo siguiente:
1. Abrir libro “origen”
2. Para ir a MS Visual Basic Presionar Alt + F11
3. Del menú elegir Insertar / Módulo
4. Copiar y Pegar la siguientes instrucciones de la macro en el panel de la derecha
Sub actualizadestino()

'Por dam
Workbooks("destino"). Activate
ufiladestino = Range("A" & Rows.Count).End(xlUp).Row
Workbooks("origen").Activate
ufilaorigen = Range("A" & Rows.Count).End(xlUp).Row
' selecciona productos nuevos
ActiveSheet.Range(Cells(ufiladestino + 1, 1), Cells(ufilaorigen, 15)).Copy
Workbooks("destino").Activate
Cells(ufiladestino + 1, 2).Select
ActiveSheet.Paste
End Sub
5. Lo siguiente es, en la macro van los nombres de los libros “origen” y “destino”, si tus libros se llaman diferente deberás cambiar estos datos por los verdaderos nombres.
6. Regresa a tu libro “origen”
7. Guarda tu libro
Ahora vamos a crear un botón para ejecutar la macro
Lo que debes hacer es lo siguiente:
1. En tu libro “origen”
2. Del menú elegir Insertar / Imagen / Autoformas
3. Elige el botón que más te guste.
4. Coloca la imagen donde gustes (dentro de tu libro “origen”)
5. Sobre la imagen, presiona click derecho, en el menú que te aparece selecciona Modificar Texto, escribe “Actualizar Destino”
6. Vuelve a presionar click derecho, sobre la imagen, en el menú que te aparece selecciona Asignar Macro
7. Selecciona de la lista que te aparece actualizadestino y le das aceptar
8. Guarda tu libro
9. Listo, cuando acerques el cursor al botón te aparecerá una manita, presiona el botón y la macro se ejecutará.
10. Para verificar si es lo que necesitas, prueba con libros de respaldo.

Hola

Ante todo muchas gracias, me estas ayudando demasiado.

Tengo dudas,

¿El botón para añadir nuevos terminales se puede crear en el libro destino, para que cada trabajador le de, cuando lo vaya a utilizar?Habría que cambiar el código?¿

¿Los dos libros tienen que estar abiertos?

¿Hay que seleccionar los nuevos productos para que se exporten ó el propio código es capaz de detectar la diferencias entre ambos, que lo hace automático?

De corazón un millón de gracias

Te respondo:

1. Si lo puedes crear en el libro destino.

2. No hay que cambiar el código

3. Importante que los dos libros estén abiertos

4. La macro detecta nuevos registros en el origen y los envía al destino, siempre y cuando, como lo mencionaste en tu requerimiento, los nuevos productos se agreguen al final del libro origen.

Ok, muchas gracias.

Ah, ok.¿y para que valga para toda la pagina, no se podría hacer? Es que es verdad, que te he dicho ultima fila. Pero ahora pensándolo se puede actualizar algún producto en cualquier lado, porque van ordenados por marca.

Jo! Lo siento por no haberme dado cuenta.

Gracias

Podrías cerrar esta pregunta y abrir una nueva con la siguiente información:

Con cuáles columnas (campos llave) del origen se debe buscar en el destino.

Condiciones:

Si lo encuentra, no se agrega en destino.

Si no se encuentra, se agrega en destino.

¿Si lo encuentra más de una vez?

¿Y si en destino hay registros que no están en origen?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas