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

Cómo abrir un archivo, con macros en Excel.
Leído 36784 veces.
Créditos imagen:Designed by Freepik

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 ‘abrirArchivo’.

El nombre del archivo y su ruta.

Primero, necesitas saber el nombre de tu archivo y “recordarlo” en una variable. Así pues, deberás crear una variable llamada ‘strArchivo’ 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 ‘MiArchivo.xls’ y la ruta en la que está guardado es ‘C:\MiCarpeta’.

Entonces, si junto todo, la ruta sería: ‘C:\MiCarpeta\MiArchivo.xls’.

En tu código, deberías de escribirlo así:

strArchivo = 'C:\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 ‘OpenText’ del objeto ‘Workbooks’.

A este método debes pasarle el argumento ‘Filename’, en el cual asignarás el valor que tenías en la variable ‘strArchivo’.

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? 😀

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=”Descarga 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!

Raymundo

About Raymundo Ycaza

Programador, consultor digital y estudiante de Ingeniería Industrial en la Universidad de Guayaquil.

+Raymundo se desempeña como consultor digital y es el CEO de Plyson. Además es autor del blog que lleva su nombre, donde aporta a la comunidad de habla hispana con sus conocimientos de Excel, a través de tutoriales claros y orientados a resolver problemas reales del día a día laboral del usuario.

  • Miguel A Glez Gtz

    Hola Buen día!
    Me ha sido muy útil el código que haz compartido! Gracias!
    Mi pregunta es en relación a que tengo una macro para abrir el archivo que quiero “manipular”, si deseo que el archivo2.xlsx abierto desde archivo1.xlsx se modifique con código desde el archivo1.xlsx y luego de haberlo modificado pueda llevar esos cambios (copy and paste, todo mediante código) a otro archivo3.xlsx que ya contiene una macro, cómo debo hacer uso de esos archivos?
    archivo3.xlsx que tiene una macro, usarlo sólo como formato o de plano no usarlo y generar la macro en archivo1.xlsx?
    ¿Qué me recomiendas?

  • David Castellanos

    Hola Buen día, yo quiero hacer esto exactamente, pero yo quisiera que me colocara el archivo dentro de mi libro actual como un objeto, al cual pueda darle click y abrir el archivo, pero que quede guardado dentro de excel como objeto o como archivo adjunto

  • Natalia Rubí García

    Gracias!! Super practico tu tutorial!! Gracias por compartir tus conocimientos

  • Marisol

    Hola y gracias de antemano,
    tengo una macro que me abre el fichero c:tmpexcel.txt pero ahora necesito que el fichero sea distinto cada vez pero no se como pasarle a la macro el nombre del fichero (no quiero pedirlo porque es un proceso desatendido). Puedo ejecutar un xls y pasarle un nombre de fichero por linea de comando ? por ejemplo : c:tmpejemplo.xls c:tmpficheroacargar.txt

Suscríbete

Suscríbete a la lista de correos

¡Todo listo! Ingresa tu email y dale al botón naranja “Dame Acceso Ahora” para disfrutar del contenido adicional.

Suscríbete a la lista de correos

¿Te vas a perder la oportunidad de aprender Excel de una buena vez? Ingresa tu e-mail abajo y no te pierdas nada.





Conmigo no hay SPAM. Tus datos estarán 100% seguros.

X
Suscríbete

Suscríbete a la lista de correos

¡Todo listo! Ingresa tu email y dale al botón naranja “Dame Acceso Ahora” para disfrutar del contenido adicional.

Suscríbete a la lista de correos

¿Te vas a perder la oportunidad de aprender Excel de una buena vez? Ingresa tu e-mail abajo y no te pierdas nada.





Conmigo no hay SPAM. Tus datos estarán 100% seguros.

X
Menú principal