Página 1 de 1
Obtener ruta de un archivo
Publicado: Mar Nov 04, 2008 11:15 am
por eli_bar84
Hola expertos por favor podrían ayudarme...
Estoy trabajando en una macro.. Lo que quiero que haga esta es lo siguiente: tengo una carpeta llamada carpeta_principal que contiene un archivo de excel llamado archivo_principal.xlsm, dentro de esta carpeta tambien hay 10 carpetas, llamense carpeta1, carpeta2, .... y carpeta10.. Y cada subcarpeta contienen x numero de archivos de excel... por ejemplo la carpeta1 contiene un archivo llamado Unidad1.xlsm y este archivo tiene una macro, en esta macro quiero abrir el archivo llamado archivo_principal.xlsm sin necesidad de tener que escribir toda la ruta, sino, obtener la ruta de mi archivo actual (unidad1.xlsm) y subir un nivel mas(carpeta_principal) y abrir el archivo_principal, esa es la idea. El codigo que tengo es el siguiente.
Sub INICIO()
nombre_principal = "archivo_principal.XLSM"
ruta= "..\" & ThisWorkbook.Path & "\" & nombre_principal
Workbooks.Open Filename:= ruta
End Sub
se supone que "..\" me ayuda a subir un nivel pero no entiendo porque me da un mensaje de error.. Te lo agradecería mucho si me ayudas. gracias...
Re: Obtener ruta de un archivo
Publicado: Mié Nov 05, 2008 9:55 pm
por HectorPerezB
Compañero, me parece que cuando trabajamos la opción "Thisworkbook", lo que excel hace es buscar en la carpeta que tiene la macro que se está ejecutando. Es decir, para el ejemplo del archivo "Unidad1" en la Carpeta 1, la macro buscaría en esa "Carpeta1" el "archivo_principal" y obviamente no lo encuentra.
De todas formas, no conozco bien la herramienta "..\" pero creo tener algo de información sobre como trabajar con multiples hojas de excel. Perame la busco y la subo.
Saludos,
Héctor Pérez
Re: Obtener ruta de un archivo
Publicado: Jue Nov 06, 2008 8:42 am
por HectorPerezB
Caramba, no encontré el doc. pero aquí hay un link que puede servir:
http://www.excel-vba.com/vba-code-2-4-workbooks.htm
Saludos,
Héctor Pérez
Re: Obtener ruta de un archivo
Publicado: Vie Ene 15, 2010 3:02 pm
por RjveraL
Mira yo hago algo así... y me funka
Sub AbreGuardaCierra()
'
'
Dim Nombre As String
Dim FicheroTxT As Variant
Dim SalvaFichero As String
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path
FicheroTxT = Application.GetOpenFilename("Archivo de Planilla de Cálculo .xls,*.XLS", , "Seleccione el archivo abrir")
If FicheroTxT = False Then Exit Sub
' abre el archivo de trabajo
Workbooks.Open Filename:=FicheroTxT
' Proceso de Guardado
'
Application.DisplayAlerts = False ' permite que no se muestren las alerta
' Crea el Nombre Temporal del Archivo y le da extensión
Fecha = Left$(Date$, 2) & "-" & Mid(Date$, 4, 2) & "-" & Right$(Date$, 4)
Hora = Left$(Time$, 2) & "." & Mid(Time$, 4, 2) & "." & Right$(Time$, 2)
Nombre = Fecha & "_" & Hora ' & ".Xls"
' Muestra el Dialogo de Guardar Como...
' Application.Path muestra la ruta de donde esta instalado el programa que esta ejecutando este libro (excel)
' Pone en la Ruta de guardado la misma ruta que el archivo VBA en ejecución (este)
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path
'
SalvaFichero = Application.GetSaveAsFilename(Nombre, fileFilter:="Guardar Cómo *.XLS , *.xls")
' Guarda el archivo
ActiveWorkbook.SaveAs Filename:=SalvaFichero _
, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Range("B1").Select
' Vuelve a Guardar y Cierra el Nuevo Archivo
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Re: Obtener ruta de un archivo
Publicado: Dom Ene 17, 2010 2:57 pm
por surfer200
eli_bar84 escribió:Hola expertos por favor podrían ayudarme...
Estoy trabajando en una macro.. Lo que quiero que haga esta es lo siguiente: tengo una carpeta llamada carpeta_principal que contiene un archivo de excel llamado archivo_principal.xlsm, dentro de esta carpeta tambien hay 10 carpetas, llamense carpeta1, carpeta2, .... y carpeta10.. Y cada subcarpeta contienen x numero de archivos de excel... por ejemplo la carpeta1 contiene un archivo llamado Unidad1.xlsm y este archivo tiene una macro, en esta macro quiero abrir el archivo llamado archivo_principal.xlsm sin necesidad de tener que escribir toda la ruta, sino, obtener la ruta de mi archivo actual (unidad1.xlsm) y subir un nivel mas(carpeta_principal) y abrir el archivo_principal, esa es la idea. El codigo que tengo es el siguiente.
Sub INICIO()
nombre_principal = "archivo_principal.XLSM"
ruta= "..\" & ThisWorkbook.Path & "\" & nombre_principal
Workbooks.Open Filename:= ruta
End Sub
se supone que "..\" me ayuda a subir un nivel pero no entiendo porque me da un mensaje de error.. Te lo agradecería mucho si me ayudas. gracias...
Hola:
Utiliza la grabadora de macros, y graba el listado, creo que es más práctico.
Saludos
Re: Obtener ruta de un archivo
Publicado: Dom Ene 17, 2010 4:11 pm
por surfer200

Hola:
Este es un ejemplo de una rutina para abrir un archivo, usando la grabadora de macros:
Sub Ruta()
'
' Ruta Macro
' Ruta de acceso a un archivo
'
'
ChDir "D:\Ingenieria\Geotecnia y Calidad"
Workbooks.Open Filename:= _
"D:\Ingenieria\Geotecnia y Calidad\Carga Hundimiento Zapata.xls"
Windows("Libro1").Activate
End Sub
Espero te sirva:
Saludos
eli_bar84 escribió:Hola expertos por favor podrían ayudarme...
Estoy trabajando en una macro.. Lo que quiero que haga esta es lo siguiente: tengo una carpeta llamada carpeta_principal que contiene un archivo de excel llamado archivo_principal.xlsm, dentro de esta carpeta tambien hay 10 carpetas, llamense carpeta1, carpeta2, .... y carpeta10.. Y cada subcarpeta contienen x numero de archivos de excel... por ejemplo la carpeta1 contiene un archivo llamado Unidad1.xlsm y este archivo tiene una macro, en esta macro quiero abrir el archivo llamado archivo_principal.xlsm sin necesidad de tener que escribir toda la ruta, sino, obtener la ruta de mi archivo actual (unidad1.xlsm) y subir un nivel mas(carpeta_principal) y abrir el archivo_principal, esa es la idea. El codigo que tengo es el siguiente.
Sub INICIO()
nombre_principal = "archivo_principal.XLSM"
ruta= "..\" & ThisWorkbook.Path & "\" & nombre_principal
Workbooks.Open Filename:= ruta
End Sub
se supone que "..\" me ayuda a subir un nivel pero no entiendo porque me da un mensaje de error.. Te lo agradecería mucho si me ayudas. gracias...