Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

GetOpenFilename en VBA

| 3 comentarios

Este es un método que nos permite obtener la ruta de un archivo a partir de un filtro establecido por el usuario, lo que es muy útil en diferentes situaciones que detallaremos más adelante. A continuación, conoceremos su sintaxis:

Application.GetOpenFilename (FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

FileFilter: Establece los criterios de filtro. Por ejemplo: “Archivos de texto (*.txt),*.txt”. Si se omite, el valor predeterminado es “Todos los archivos (*.*),*.*”

FilterIndex: Especifica los números de índice de los criterios de filtro, si se omite se usa el primer filtro de archivo.

Title: Establece el título del cuadro de diálogo. Por defecto: “Abrir”

ButtonText: Usado en MAC

MultiSelect: True, permite la selección de varios archivos; False para seleccionar sólo uno (este es su valor predeterminado)

En la práctica se evidencia mucho más la utilidad de esta herramienta. A continuación, un ejemplo.

  • Obtener la ruta eligiendo desde el explorador:

Captura1 1 300x55, GetOpenFilename en VBA

 

 

(Para mayor visualización de  la imagen, hacer click en la misma)

Para este ejemplo se establece un filtro de archivo de texto, se mostrará el cuadro de diálogo Abrir y si el usuario elige un nombre de archivo, la ruta se mostrará en la celda indicada (B7). Para comprender mejor las utilidades del método, se modificó también el título del cuadro de diálogo (Predeterminado “Abrir”). Se mostrará una ventana similar:

Imagen1 300x212, GetOpenFilename en VBA

(Para mayor visualización de  la imagen, hacer click en la misma)

Y eligiendo el archivo señalado, se obtendrá la cadena D:\Macros\txt3.txt

Como se indica, es posible agregar varios filtros a la vez, para ese caso se agregarán las extensiones como sigue:

  • Filtra archivos de texto, Excel y PDF

Captura 2 300x67, GetOpenFilename en VBA

(Para mayor visualización de  la imagen, hacer click en la misma)

A partir de este punto se podrá utilizar según la necesidad de cada uno.

Por: Lucia Rodriguez

3 comentarios

  1. Hola! Muy interesante tu aporte.
    Tengo una consulta, quiero que el nombre del archivo este incluido en la macro, es decir, que no sea necesario seleccionarlo en la ventada de exploración de archivos. Es posible indicar eso?

    Muchas gracias!

  2. ¡Hola! Muy buen día… Duda, ¿sabes por qué razón me se ejecuta este método aunque yo no lo llame? Lo que pasa es que en mi macro hago cruce con otro libro el cual está activo, pero para hacer el cruce las fórmulas hacen referencia al otro libro: Range(«Q2»).FormulaR1C1 = _
    «= IFERROR(IF(ISERROR(INDEX('[MC trabajada.xlsm]Mesa de control'!C1:C11,MATCH(RC[-1],'[MC trabajada.xlsm]Mesa de control'!C10,0),7)),INDEX('[Gestiones trabajada.xlsm]Gestiones'!C1:C21,MATCH(RC[-1],'[Gestiones trabajada.xlsm]Gestiones'!C20,0),18), INDEX('[MC trabajada.xlsm]Mesa de control'!C1:C11,MATCH(RC[-1],'[MC trabajada.xlsm]Mesa de control'!C10,0),7)),»»Por tocar»»)», es ahí cuando me pide seleccionar el libro, acción que puedo cancelar, sin embargo, es molesto estar presionando cancelar unas 5 veces… ¿Sabes si puedo anular «GetOpenFilename»)?

Deja un comentario

Los campos requeridos estan marcados con *.