FileDialog Error de compilación: No se ha definido el tipo definido por el usuario
Desde un procedimiento de formulario, llamo a una función que se llama "CarpetaArchivo" a la cual le paso un valor. La función la tengo en un módulo llamado "basFileDialog". La función está basada en el ejemplo que Microsoft muestra en la Ayuda, pero no me está funcionando. Me da el siguiente error:
Error de compilación
No se ha definido e tipo definido por el usuario
Y de hay no salgo. La función tiene lo siguiente:
Function CarpetaArchivo(strBuscar As String) As String
'Requiere referencia a Microsoft Office 12.0 Object Library.
Dim fDialog As Office.FileDialog
'Set up the File Dialog.
If strBuscar = "carpeta" Then
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
Else
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
End If
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo o la carpeta"
.InitialFileName = "C:\"
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "Ficheros Excel", "*.xls; *.xlsx"
.Filters.Add "All Files", "*.*"
If .Show = True Then
CarpetaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function
la llamada a la función se realiza de la siguiente forma:
strPath = CarpetaArchivo("carpeta")
En este caso le paso un valor "carpeta" para que me devuelva la ruta de la carpeta que seleccione (para exportar access a excel), de esta forma si le paso el valor "archivo" que me devuelva la ruta del archivo seleccionado (para cargas de excel a access)y lógicamente la referencia a Microsoft Office 12.0 Object Library, la tengo activada.
¿Me podrías decir que es lo que estoy haciendo mal para que no me funcione el FileDialog?
Error de compilación
No se ha definido e tipo definido por el usuario
Y de hay no salgo. La función tiene lo siguiente:
Function CarpetaArchivo(strBuscar As String) As String
'Requiere referencia a Microsoft Office 12.0 Object Library.
Dim fDialog As Office.FileDialog
'Set up the File Dialog.
If strBuscar = "carpeta" Then
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
Else
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
End If
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo o la carpeta"
.InitialFileName = "C:\"
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "Ficheros Excel", "*.xls; *.xlsx"
.Filters.Add "All Files", "*.*"
If .Show = True Then
CarpetaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function
la llamada a la función se realiza de la siguiente forma:
strPath = CarpetaArchivo("carpeta")
En este caso le paso un valor "carpeta" para que me devuelva la ruta de la carpeta que seleccione (para exportar access a excel), de esta forma si le paso el valor "archivo" que me devuelva la ruta del archivo seleccionado (para cargas de excel a access)y lógicamente la referencia a Microsoft Office 12.0 Object Library, la tengo activada.
¿Me podrías decir que es lo que estoy haciendo mal para que no me funcione el FileDialog?
Respuesta de Neckkito Nck
3
1 respuesta más de otro experto
Respuesta de Eithel Osegueda Gomez