Buenos días a todos.
Tengo este código que me dieron en este foro en donde el
Sub del final es un ejemplo de cómo funciona el
procedimiento. Este procedimiento siempre me pregunta el
directorio y se para en Mi PC. La pregunta es, cómo puedo
hacer o en qué parte del código le digo que me empiece a
preguntar desde otra ruta o directorio?
Gracias por la colaboración.
Option Private Module
' las 'llamadas' a las API's '
Declare Function BuscarDirectorio _
Lib "Shell32.dll" _
Alias "SHGetPathFromIDListA" ( _
ByVal IDRuta As Long, _
ByVal TextoRuta As String) As Long
Declare Function ExplorarDirectorios _
Lib "Shell32.dll" _
Alias "SHBrowseForFolderA" ( _
ByRef BrowseInfo As InfoNavegar) As Long
' un tipo de datos definido por el usuario '
Type InfoNavegar
Propietario As Long
IDRutaRaiz As Long
DlgNombre As String
DlgTexto As String
Devolver As Long
NumRuta As Long
Parametro As Long
Imagen As Long
End Type
' la funcion que 'obtiene' el nombre del directorio [si]
seleccionado '
Function ObtenerDirectorio(Optional ByVal Texto As
String) As String
Dim Iniciar_en As InfoNavegar, _
Ruta As String, _
Directorio As Long, _
Buscar_en As Long, _
Largo As Integer, _
Seleccionado As String
Iniciar_en.IDRutaRaiz = 0&
If IsMissing(Texto) Or Texto = "" _
Then Iniciar_en.DlgTexto = "Selecciona un
directorio." _
Else Iniciar_en.DlgTexto = Texto
Iniciar_en.Devolver = &H1
Buscar_en = ExplorarDirectorios(Iniciar_en)
Ruta = Space$(512)
Directorio = BuscarDirectorio(Buscar_en, Ruta)
If Directorio Then
Largo = InStr(Ruta, Chr$(0))
Seleccionado = Left(Ruta, Largo - 1)
If Right(Seleccionado, 1) <> "\" Then Seleccionado =
Seleccionado & "\"
Else: Seleccionado = ""
End If
ObtenerDirectorio = Seleccionado
End Function
Sub PruebaAPIs(): Dim Directorio As String
Directorio = ObtenerDirectorio("Selecciona un
directorio...")
If Directorio <> "" Then
MsgBox "Se ha seleccionado el directorio:" & vbCr &
Directorio
Else: MsgBox "¡ NO se ha seleccionado ningún
directorio !!!"
End If
End Sub
Leer las respuestas