jueves, 23 de enero de 2014

Macro para copiar una tabla de un archivo Excel a otro

En algunas ocasiones se cuenta solamente una parte de los datos (en formato Excel) y es necesario unificar esta información en un solo archivo Excel. Por ejemplo, se puede contar con el archivo “Consumo” que contiene las ventas del mes de enero y se necesita copiar esta información al archivo “Compilado” que contiene todas las ventas del año. Para automatizar este proceso que se realizará todos los meses se recurre a la creación de una macro.


Primero, nos damos como supuesto el hecho de que el archivo “Consumo” se encuentra siempre en la misma carpeta y siempre tiene ese nombre. 

La idea de la macro es rellenar la hoja "Destino" del libro “Compilado” con el simple click de un botón. 


Los datos que se copiarán están en la hoja "consumo de articulos" del libro "Consumo". Estos datos están ubicados en una tabla que tiene las mismas columnas en el mismo orden que la tabla que está en la hoja "Destino".


La macro llamada "AgregarPlanilla" tiene el siguiente código:

Lo primero que se debe hacer es encontrar una celda vacía en la columna "A" del libro "Compilado" (libro activo) donde copiar la tabla. Para esto primero activamos la celda "A1" y por medio de la funcion Do While... Loop le decimos a la macro que baje a la siguiente fila cuando la celda no está vacia. La iteración se detiene cuando encuentra una celda vacia en la columna "A". Esta celda la guardamos en la variable del tipo Range llamada "celdadestino". 



Luego se abre el libro excel "Consumo" y se activa la hoja "consumo de articulos" porque esta es la que contiene la información que se quiere copiar.


Despues con el comando CurrentRegion marcamos el área que comprende la tabla de datos la cual sabemos que incluye la celda "A1". Las celdas que comprenden esta área la llamamos "tabla". 

A continuacion se selecciona la tabla sin el encabezado y se selecciona para copiar.


Ahora nos posicionamos en la "celdadestino" del libro "Compilado" en la hoja "Destino" y pegamos los datos con el comando Selection.PasteSpecial que permite el pegado especial. Con la indicacion xlPasteAll se pega todo el contenido de las celdas, incluyendo las formulas y el formato (se puede reemplazar xlPasteAll  por Paste:=xlPasteValues si se quiere copiar sólo los valores).


Finalmete se finaliza el copiado y pegado, y se cierra el libro "Consumo".



Descargar Archivo

No hay comentarios:

Publicar un comentario