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
No hay comentarios:
Publicar un comentario