Canales de Ingeniería Civil en: *Whatsapp* / *Telegram*

Obtener ruta de un archivo

Para subir hojas de calculo de Ingenieria civil
Reglas del Foro
Favor de usar el boton de Dar Gracias
En el mensaje del usuario al que deseas agradecer
En vez de escribir gracias repetidamente
Responder
eli_bar84
Usuario Principiante
Usuario Principiante
Mensajes: 1
Registrado: Mar Nov 04, 2008 11:09 am

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...
HectorPerezB
Usuario Intermedio
Usuario Intermedio
Mensajes: 59
Registrado: Lun Sep 01, 2008 5:53 pm
Ubicación: Bogotá D.C.

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
HectorPerezB
Usuario Intermedio
Usuario Intermedio
Mensajes: 59
Registrado: Lun Sep 01, 2008 5:53 pm
Ubicación: Bogotá D.C.

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
RjveraL
Usuario Principiante
Usuario Principiante
Mensajes: 1
Registrado: Jue Ene 14, 2010 10:21 am

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
surfer200
Usuario Frecuente
Usuario Frecuente
Mensajes: 120
Registrado: Sab May 12, 2007 11:33 am
Ubicación: Zapopan

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
surfer200
Usuario Frecuente
Usuario Frecuente
Mensajes: 120
Registrado: Sab May 12, 2007 11:33 am
Ubicación: Zapopan

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

Volver a “Hojas de Calculo Excel”

  • Información