Macro abrir archivo en la carpeta con el nombre que introduzca en una ventana

Ahora tengo un código que me abre un excel de una carpeta, en función del nombre que inserto en una celda. El codigo es este:

Sub Pori_y_Salo()
'
' abrir pori
Dim File As String
Dim sPath
sPath = ThisWorkbook.Path & "\"
Sheets("Total").Activate
sFile = Range("A10").Value & "\"
Workbooks.Open Filename:=sPath & sFile & "Pori.xlsx"

Funciona perfectamente, pero ahora me gustaría modificarlo... A ver si me podéis ayudar.

Me gustaría que en vez de abrir el archivo en función del nombre de la casilla, que salga una ventana e insertar el nombre de la carpeta.

Supongo que no será muy complicado pero estoy empezando con esto de las macros.

2 Respuestas

Respuesta
1

·

Si quieres algo mas conciso y menos aparatoso puedes usar esto

Sub Pori_y_Salo()
'
' abrir pori
Dim File As String
Dim sPath
sPath = ThisWorkbook.Path & "\"
Sheets("Total").Activate

sFile = InputBox("Escriba el nombre de la carpeta")
if sFile <>"" then sFile=sFile & "\"
Workbooks.Open Filename:=sPath & sFile & "Pori.xlsx"

end sub

·

Si escribes un nombre de carpeta la agregara a la ruta y si no escribes nada abrirá el fichero de la misma carpeta del libro.

Pon el mismo cuidado que tenías para poner un nombre de carpeta válido en la celda, no sé si en tu macro tienes tratamiento de errores.

Respuesta
1

Para abrir el cuadro de diálogo y seleccionar la carpeta destino (sPath) estas son las instrucciones:

Sub Pori_y_Salo()
'
' abrir pori
Dim File As String
Dim sPath
Dim Direc
Set Direc = Application.FileDialog(msoFileDialogFolderPicker)
'si se cancela la ventana el proceso se cancela también
If Direc.Show = 0 Then
sPath = ""
Exit Sub
End If
'guarda nombre del directorio seleccionado
sPath = Direc.SelectedItems(1) & "\"
'sPath = ThisWorkbook.Path & "\"
Sheets("Total").Activate
sFile = Range("A10").Value & "\"
Workbooks.Open Filename:=sPath & sFile & "Pori.xlsx"
End Sub

Si en la misma ventana eliges la carpeta final, es decir que tampoco necesitas el contenido de la celda A10, quita la linea donde se define sFile y la instrucción de apertura te quedaría así:

Workbooks.Open Filename:=sPath  & "Pori.xlsx"

Sdos y no olvides valorar la respuesta.

Elsa

PD) Para aprender más sobre macros puedes visitar mi sitio. Instrucciones, ejemplos para descargar y manuales :

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas