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...
BIMSOFTWARE.MX GStarCAD - Software CAD 2d/3d
Canales de Ingeniería Civil en:
Whatsapp / Telegram
Whatsapp / Telegram
Obtener ruta de un archivo
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
Favor de usar el boton de Dar Gracias
En el mensaje del usuario al que deseas agradecer
En vez de escribir gracias repetidamente
-
- 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
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
-
- 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
http://www.excel-vba.com/vba-code-2-4-workbooks.htm
Saludos,
Héctor Pérez
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
Hola: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...
Utiliza la grabadora de macros, y graba el listado, creo que es más práctico.
Saludos

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...
-
- Información
-
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados