Macros en Excel

C贸mo abrir un archivo, con macros en Excel.

Raymundo Ycaza
#Excel Avanzado#Macros (VBA)#馃 Automatizaci贸n con Excel

Ya sabes crear macros y has hecho tus primeras pruebas b谩sicas. Es hora de ir haciendo funciones m谩s 煤tiles que nos ayuden en nuestras aplicaciones de oficina. 驴Qu茅 tal una macro que nos permita abrir un archivo?

Alex, uno de mis suscriptores, me consult贸 acerca de c贸mo podr铆a abrir un archivo de Excel haciendo uso de macros para poder realizar algunas consultas sobre 茅l. As铆 que decid铆 hacer un breve art铆culo en el que explico el procedimiento paso a paso ;)

Abrir un archivo con Macros.

La idea de la propuesta que tengo en mente, es que se muestre un cuadro de di谩logo que te preguntar谩 por la ubicaci贸n de tu archivo y, una vez que lo has seleccionado, ese archivo se abrir谩 inmediatamente. As铆, pues, 隆vamos a ello!

Crea una funci贸n para tu c贸digo.

Lo primero que vas a hacer, es crear una funci贸n dentro de la cual vas a colocar todo el c贸digo que voy a mostrarte a continuaci贸n. Si a煤n tienes dudas de c贸mo crear una funci贸n en VBA, puedes pinchar aqu铆

La funci贸n que vas a crear, para el ejemplo, debe tener el nombre 鈥榓brirArchivo鈥.

El nombre del archivo y su ruta.

Primero, necesitas saber el nombre de tu archivo y 鈥渞ecordarlo鈥 en una variable. As铆 pues, deber谩s crear una variable llamada 鈥榮trArchivo鈥 y en ella almacenar谩s toda la ruta a tu archivo, inclu铆da la extensi贸n.

En mi caso, el archivo que quiero abrir se llama 鈥楳iArchivo.xls鈥 y la ruta en la que est谩 guardado es 鈥楥:\MiCarpeta鈥.

Entonces, si junto todo, la ruta ser铆a: 鈥楥:\MiCarpeta\MiArchivo.xls鈥.

En tu c贸digo, deber铆as de escribirlo as铆:

strArchivo = 鈥楥:\MiCarpeta\MiArchivo.xls鈥

Y con eso ya tendr铆as almacenado el nombre de tu archivo. Pero, 驴y si quisiera abrir un archivo diferente cada vez? Pues entonces, 隆lo haremos interactivo!

Usando el m茅todo GetOpenFilename

Para lograr que esto sea interactivo, necesitar谩s que el sistema te pregunte d贸nde est谩 tu archivo cada vez que ejecutas el programa. Pero no haremos todo desde cero, sino que aprovecharemos el m茅todo GetOpenFilename que ya se encarga de hacer esto.

Simplemente reemplaza en tu c贸digo la parte donde ten铆as la ruta a tu archivo por lo siguiente:

Application.GetOpenFilename

Al final, el c贸digo que tengas, debe verse as铆:

strArchivo = Application.GetOpenFilename

Abriendo el archivo.

Bien, ya tienes la ruta completa de tu archivo. Ahora solo queda abrirlo directamente y, para esto, te ayudar谩s del m茅todo 鈥極penText鈥 del objeto 鈥榃orkbooks鈥.

A este m茅todo debes pasarle el argumento 鈥楩ilename鈥, en el cual asignar谩s el valor que ten铆as en la variable 鈥榮trArchivo鈥.

La siguiente l铆nea de c贸digo, debes escribirlo tal cual te muestro a continuaci贸n:

Workbooks.OpenText Filename: = strArchivo

Y hasta aqu铆 ya has conseguido tu objetivo. Ahora ver谩s que cuando ejecutas esta macro, se muestra un cuadro de di谩logo donde eliges el archivo que quieres abrir y, a continuaci贸n, este se abre y se muestra en tu pantalla.

Abrir un archivo con macros

驴Y si el usuario cancela la acci贸n?

Bueno, si el usuario cancela la acci贸n se generar谩 un error en tu programa que har谩 que este se caiga.

Abrir un archivo con macros

Entonces, 驴c贸mo evitarlo?

La soluci贸n est谩 en una simple l铆nea de c贸digo:

If strArchivo = False Then Exit Sub

Esta l铆nea debes agregarla justo antes de la l铆nea que se encarga de abrir el archivo, es decir, debe quedar as铆:

If strArchivo = False Then Exit Sub Workbooks.OpenText Filename:=strArchivo

Abrir un archivo con macros

隆Pero ahora quiero cerrarlo!

Tal y como se le ocurri贸 a Hugo Serrano (en los comentarios) se te puede ocurrir a ti que es necesario cerrar el archivo luego de abrirlo, as铆 que para estos casos, puedes seguir los pasos que indico en esta entrada.

驴C贸mo cerrar un archivo, usando macros?

隆Y hemos terminado!

Con estas pocas l铆neas de c贸digo, ya tienes un peque帽o programa que se encarga de abrir un archivo de forma interactiva y que podr谩s integrar en tus nuevas aplicaciones para ampliar sus funcionalidades. 驴Muy 煤til, no crees? :D

Al final, debe quedarte un c贸digo similar a este que te muestro a continuaci贸n:

Sub abrirArchivo() strArchivo = Application.GetOpenFilename If strArchivo = False Then Exit Sub Workbooks.OpenText Filename:=strArchivo End Sub

Descargar el archivo terminado.

Si quieres descargar el archivo usado en este ejercicio,聽solo haz clic en cualquiera de los botones de aqu铆 abajo y accede sin costo.

[l2g name=鈥淒escarga el archivo haciendo clic aqu铆.鈥 id=鈥6528鈥漖

D茅jame tus comentarios y ay煤dame a compartir este art铆culo.

Si te ha gustado este art铆culo o tienes alguna duda, d茅jamela en los comentarios. Y si crees que esta informaci贸n puede ayudar a alguien m谩s, ay煤dame a difundirla en las redes sociales, usando los botones que aparecen m谩s abajo. 隆Gracias! :)

隆Nos vemos!

鈫 Regresar al Blog