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
:altav: 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 :SM010:


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...