MACRO EN EXCEL PARA COPIAR DATOS DESDE UN ARCHIVO EXCEL A OTRO

0
920
Slider

Para crear una macro para copiar datos de un archivo a otro en Excel tenemos que ser muy cuidadosos y meticulosos si no queremos gastar medio día investigando todas las posibilidades. Para el desarrollo de esta Macro en Excel que nos permita copiar datos desde un archivo Excel a otro se debe tener en cuenta la referencia o la ubicación en donde se encuentran los datos fuente o los datos a copiar en Excel, estos se pueden referenciar dinámicamente o de forma estática o fija , ya que este es un punto de partida en el caso que requieras expandir las funcionalidades de esta macro o quitar, todo de acuerdo a la necesidad, creatividad y conocimiento que se tenga en el desarrollo de código VBA.

LA COLECCIÓN WORKBOOKS EN VBA

Si se tiene experiencia en la programación en Excel seguramente conocerás el modelo de objetos y su jerarquía, donde uno de los objetos ampliamente utilizado es el objeto Workbook el cual representa un libro de Excel. Ya que al utilizar Excel podemos trabajar con múltiples libros a la vez, fue necesario crear un  objeto adicional que nos ayudara a agrupar y manejar todos esos libros y así es como surge la colección Workbooks.

Ya que la colección Workbooks es a su vez un objeto en Excel, tendrá sus propios métodos y propiedades y en esta ocasión centraremos nuestra atención en su método Open.

EL MÉTODO OPEN DEL OBJETO WORKBOOKS

El método Open de la colección Workbooks tiene 15 argumentos, así que dejaremos la revisión detallada de cada uno de ellos para otra ocasión. El único argumento que nos interesa por ahora es la ruta del archivo que deseamos abrir la cual es proporcionada al método Open como una cadena de texto de la siguiente manera:

Set wbDestino = Workbooks.Open("C:\LibroDestino.xlsx")

Es importante que la ruta del archivo indicado sea la correcta o de lo contrario obtendremos un mensaje de error. Pero si todo funciona correctamente, obtendremos un nuevo objeto Workbook que hará referencia al archivo indicado y podremos hacer referencia a cualquier hoja y celda de dicho libro para copiar los datos deseados.

MACRO PARA COPIAR DATOS A OTRO LIBRO EN EXCEL

Ahora que ya sabes cómo abrir un libro de Excel utilizando VBA, podemos escribir el código de nuestra macro para copiar datos a otro libro.

Las diferencias entre esta nueva macro y la publicada en el artículo original son las siguientes:

  • Línea 4: Definí la variable wbDestino como un objeto del tipo Workbook que nos servirá para guardar la referencia al libro destino.
  • Línea 11: El método Workbooks.Open se encarga de abrir el libro a donde se copiarán los datos y la referencia se guardará en la variable wbDestino.
  • Línea 14: El libro abierto se convierte en el libro activo así que, para que las referencias del resto del código funcionen tal como en la versión original, activo de nueva cuente al libro donde se encuentra el código con la instrucción ThisWorkbook.Activate.
  • Línea 18: Utilizo el objeto wbDestino para hacer referencia a la hoja de dicho libro a donde se copiarán los datos.
  • Línea 39 y 40: Los métodos Save y Close me permiten guardar los cambios en el libro destino y finalmente cerrarlo.
previous arrow
next arrow
Slider

Es importante que la ruta al libro destino sea correcta o de lo contrario recibirás un mensaje de error. De la misma manera, la hoja de destino indicada debe existir en dicho libro o también recibirás un mensaje de error.

COPIAR DATOS A OTRO LIBRO CON LA MACRO

El archivo de descarga que preparé para este artículo es un archivo comprimido donde encontrarás el archivo LibroOrigen.xlsm que contiene el código de la macro. También he incluido dentro del comprimido el archivo LibroDestino.xlsx que es necesario para que el código funcione correctamente. Para probar la macro solo deberás abrir el archivo LibroOrigen.xlsm y pulsar el botón Copiar.

Macro para copiar datos a otro archivo de Excel

Recuerda que se pegarán los valores sin formato, debido al argumento xlPasteValues del método PasteSpecial (Línea 35), pero si deseas incluir el formato al copiar los datos solo debes reemplazar dicho argumento por xlPasteAll.

Si deseas probar con tus propios libros deberás copiar el código VBA y hacer dos cambios importantes: Indicar correctamente la ruta del archivo destino (Línea 11) y el nombre de la hoja a donde se copiarán los datos (Línea 18).

Artículo que te recomendamos leer:
¿CÓMO CREAR UNA CELDA INTERMITENTE EN EXCEL?

¿Qué te pareció nuestra blog? Coméntanos.



CURSO DE ESPECIALIZACIÓN: EXCEL EMPRESARIAL INTERMEDIO

📆 Fechas: Martes y jueves: 21/09, 23/09, 28/09, 30/09 de setiembre, 05/10, 07/10, 12/10 y 14/10 de octubre.
⏰ Horario: 7:00 pm – 10:00 pm
Duración: 8 sesiones,1 mes.

Mayor información: https://wa.link/wnukin

Comentarios
Slider

Dejar respuesta

Please enter your comment!
Please enter your name here