sábado, 24 de enero de 2015

Tutorial Excel vba Open FileDialog

Un FileDialog nos permite mostrar un cuadro de dialogo para trabajar con archivos. En esta oportunidad trabajaremos con la opción de abrir archivos (msoFileDialogOpen) que nos permite seleccionar archivos desde cualquier parte de nuestra PC. el resultado que nos muestra es la ruta del archivo el cual hemos seleccionado.

Para que se nos haga mas facil entender el FileDialog veamos estos ejemplos.

Ejemplo 1: Abrir un solo archivo.

Sub Ejemplo1()

Dim intElegir As Integer

Dim strPath As String

'Seleccionar un solo archivo

Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False

'Mostrar el cuadro de dialogo
intElegir = Application.FileDialog(msoFileDialogOpen).Show

If intElegir <> 0 Then

    strRuta = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
    MsgBox strRuta

Else
   MsgBox "Se cancelo"

End If

End Sub


Analizaremos la parte del código anterior.

Este código se escribe para determinar si el cuadro de dialogo permitira abrir multiples archivos a la vez o no. en este caso el valor es false por lo tanto solo permitira abrir un archivo.
El código dentro de FileDialog indica cual es la operacion que realizara, en este caso realizara la opcion de abrir archivo (msoFileDialogOpen)


Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False

Enta parte del codigo indica que el Cuadro de dialogo se mostrara para el usuario. 
intElegir = Application.FileDialog(msoFileDialogOpen).Show

Finalmente si el usuario cancela el dialogo intElegir devuelve 0 y se cancela la operacion, este codigo muestra la ruta del archivo seleccionado en un mensaje al presionar el boton abrir.
If intElegir <> 0 Then
    strRuta = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
    MsgBox strRuta
'Else: MsgBox "Se cancelo"

End If

Resultado




Ejemplo 2: Abir multiples archivos
En el siguiente ejemplo tambien se muestra el cuadro de dialogo de abrir archivo, solo que a diferencia del primer ejemplo el usuario puede seleccionar varios archivos a la vez, tenga en cuenta que en el ejemplo no abriremos los archivos, solo que se mostrara la ruta de los archivo seleccionados.

Sub Ejemplo2()
Dim intElegir As Integer
Dim strPath As String
Dim i As Integer
'Seleccionar un solo archivo
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = True

'Mostrar el cuadro de dialogo
intElegir = Application.FileDialog(msoFileDialogOpen).Show

If intElegir <> 0 Then
    'Obtener la ruta de los archivos seleccionados por el usuario
    For i = 1 To Application.FileDialog(msoFileDialogOpen).SelectedItems.Count
        strRuta = Application.FileDialog(msoFileDialogOpen).SelectedItems(i)
        MsgBox strRuta
    Next
End If
End Sub

Lo que cambia con respecto al codigo anterior son los siguientes codigos.

Aqui se activa la seleccion multiple de archivos con el valor "True" = "verdadero"
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = True

Aqui valida que se haya presionado el boton "abrir", luego hace un recorrido a todos los archivos seleccionados para mostrar su ruta en un mensaje

If intElegir <> 0 Then
    'Obtener la ruta de los archivos seleccionados por el usuario
    For i = 1 To Application.FileDialog(msoFileDialogOpen).SelectedItems.Count
        strRuta = Application.FileDialog(msoFileDialogOpen).SelectedItems(i)
        MsgBox strRuta
    Next
End If

Resultado

Espero que haya sido de utilidad aprender sobre el FileDialog

Cargar multiples archivos txt en SSIS

 Fuentes Archivos planos Descargar AQUÍ los archivos Consulta SQL de creacion de tabla Despacho en SQL Server CREATE TABLE [dbo].[Despacho]...