Botón Examinar VBA Excel

Estoy tratando de crear un botón examinar (Excel 2007), para poder tener una ruta y pasarla a un textbox, no encuentro una solución, he encontrado dos aplicaciones las cuales podría usar pero no me resulta, uno es para abrir un archivo y el otro es para salvar,

Application. GetOpenFilename
Application. GetSaveAsFilename

Quisiera saber si me puedes ayudar con este tema ya que hay muchos que preguntan esto pero nadie les da la respuesta, quisiera saber si hay alguna aplicación para poder hacer esto o indicarme si se puede o no.

2 respuestas

Respuesta
1

Utiliza este código te va a servir para abrir cualquier archivo desde cualquier lugar y te deja abrir desde cualquier ruta,

Tipos de archivo que necesitas que te filtre, ejemplo si quieres abrir solo txt

x = "Archivos Excel (*.txt),*.txt"

abre de acuerdo al filtro de archivos que necesitas

FileName = Application.GetOpenFilename (filefilter:=x, Title:="Elegir Archivo")

FileNum = FreeFile()

If FileName = "" Then

Exit Sub

End If

Open FileName For Input As #FileNum

En caso que solo necesites buscar la ruta de un libro activo te sirve el código

Activeworkbook. Path

Y para llevarlo a un textbox

Solo debes dejar

userform1.textbox1.value = activeworkbook.path

Y en caso que no haya entendido bien la pregunta dame un poco mas de detalles.

Bueno gracias por contestar mi pregunta pero no es realmente lo que quiero, con la primera rutina que indicas das la ruta para un archivo, con con la segunda rutina das la ruta del archivo abierto. Muy buenas tus respuestas pero mi punto es otro.

Lo que quiero es dar la ruta hacia una carpeta determinada. por ejemplo:

Cuando instalas un programa uno presiona el botón examinar para dar la ruta de una carpeta, para que en esa carpeta se guarden tus archivos.

Esa es la idea.

De antemano Gracias.

Saludos

La verdad es que tu cuando colocas examinar le entregas una ruta obviamente para que guarde todo lo concerniente a un programa, si es asi creo tener un código:

Sub ruta()

Set navegador = CreateObject("shell.application")

directorio = navegador.browseforfolder(0, "Seleccione ruta de instalación", 0, _

"C:\").items.Item.Path
10:

archivo = InputBox("Ingrese nombre de archivo", "Ingrese", "")
If archivo = "" Then

GoTo 10

End If
ChDir directorio & "\"

ActiveWorkbook.SaveAs Filename:=directorio & "\" & archivo & _

".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Ojala te sirva, cualquier duda me comentas nuevamente.

Gracias por contestar pronto, de la rutina que me enviaste solo utilice las dos primeras lineas.Cuando ponía cancel me mandaba error agregue unas lineas mas y quedo bien, pero porque cada vez que aprieto el commandbutton se vuelve al inicio y no se queda en la carpeta en la que indique.

Asi es como tengo mi código al momento.

Sub ruta()

Set navegador = CreateObject("shell.application")
On Error GoTo mirar
directorio = navegador.browseforfolder(0, "Seleccione ruta de instalación", 0, "Computer").items.Item.Path
TextBox26 = directorio
mirar:
Exit Sub

end sub

Saludos.

Consulta,

El textbox no esta dentro de un userform, ¿es solo un comando activex? Y el command button también tiene la misma característica, explicame un poco mas para poder ayudarte.

Respuesta

Private Sub CommandButton9_Click()
Dim Secfolder As String, DIREC As String

'Verifica que la carpeta Con nombre del mes Año exista
If Dir(Sheets("Firmas").Cells(1, "C"), vbDirectory) = "" Then
MsgBox ("LA RUTA" & Sheets("Firmas").Cells(1, "C") & " NO EXISTE EN ESTE EQUIPO")
DIREC = ActiveWorkbook.Path
Else
DIREC = Sheets("Firmas").Cells(1, "C")
End If

With Application.FileDialog(msoFileDialogFolderPicker)
'With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Get folder"
.ButtonName = "Aceptar"
.InitialFileName = DIREC
'.InitialFileName = "C:\Ejercicios" - en caso de archivos
If .Show = -1 Then
'si se escoge una carpeta y se cliquea aceptar
Secfolder = .SelectedItems(1)
'Aparece la ubicación de las carpetas que se escogen
MsgBox ("Se asigno la ruta " & Secfolder & " Como ruta de guardado por Defecto")
Sheets("Firmas").Cells(1, "C") = Secfolder
Else
'cancel clicked
End If

End With

End Sub

Private Sub CommandButton9_Click()
Dim Secfolder As String, DIREC As String

'Verifica que la carpeta Con nombre del mes Año exista
If Dir(Sheets("Firmas").Cells(1, "C"), vbDirectory) = "" Then
MsgBox ("LA RUTA" & Sheets("Firmas").Cells(1, "C") & " NO EXISTE EN ESTE EQUIPO")
DIREC = ActiveWorkbook.Path
Else
DIREC = Sheets("Firmas").Cells(1, "C")
End If

With Application.FileDialog(msoFileDialogFolderPicker)
'With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Get folder"
.ButtonName = "Aceptar"
.InitialFileName = DIREC
'.InitialFileName = "C:\Ejercicios" - en caso de archivos
If .Show = -1 Then
'si se escoge una carpeta y se cliquea aceptar
Secfolder = .SelectedItems(1)
'Aparece la ubicación de las carpetas que se escogen
MsgBox ("Se asigno la ruta " & Secfolder & " Como ruta de guardado por Defecto")
Sheets("Firmas").Cells(1, "C") = Secfolder
Else
'cancel clicked
End If

End With

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas