Seleccionar directorio

07/05/2004 - 15:49 por Jorge | Informe spam
Buenos días a todos,

Me gustaría saber mediante VBA cómo puedo hacer para que
al dar click en un botón, se abra una ventana en donde
uno pueda seleccionar un directorio como cuando uno
dice "guardar como..." o "abrir".

La idea es que yo seleccione el directorio y luego la
ruta de ese directorio me quede guardada en una variable
y luego aplico un procedimiento que ya tengo.

Gracias por la colaboración.

Saludos,

Jorge
 

Leer las respuestas

#1 Fernando Arroyo
07/05/2004 - 20:08 | Informe spam
Prueba con el siguiente código:



'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type

Function GetDirectory(Optional Mensaje As String) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer

'Directorio raíz (escritorio)
bInfo.pidlRoot = 0&

'Título para el diálogo
If IsMissing(Mensaje) Then
bInfo.lpszTitle = "Seleccionar un directorio"
Else
bInfo.lpszTitle = Mensaje
End If

'Tipo del directorio a devolver
bInfo.ulFlags = &H1

'Presentar el diálogo
x = SHBrowseForFolder(bInfo)

'Analizar el resultado
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function

Sub Prueba()
Dim strDirectorio As String
strDirectorio = GetDirectory("Este mensaje aparecerá en el diálogo")
MsgBox strDirectorio
End Sub


Ejecuta el procedimiento llamado Prueba.
Un saludo.


Fernando Arroyo
MS MVP - Excel



"Jorge" escribió en el mensaje news:9dab01c4343a$2cd46100$
Buenos días a todos,

Me gustaría saber mediante VBA cómo puedo hacer para que
al dar click en un botón, se abra una ventana en donde
uno pueda seleccionar un directorio como cuando uno
dice "guardar como..." o "abrir".

La idea es que yo seleccione el directorio y luego la
ruta de ese directorio me quede guardada en una variable
y luego aplico un procedimiento que ya tengo.

Gracias por la colaboración.

Saludos,

Jorge

Preguntas similares