¿Macro para abrir otros archivos de excel, que se encuentran en la misma ruta?

Me encuentro desarrollando un macro, y en uno de los pasos quiero abrir todos los archivos de excel que, se encuentran en la misma ruta que se encuentra la macro.

Pero tengo dos retos:

1. La ruta donde esta la macro y los archivos puede variar, ya que la utilizaran personas diferentes

2. Los nombres de los archivo a abrir no son estándar, son diferentes.

Mil gracias si me pueden ayudar con el código que solucione esta inquietud

1 Respuesta

Respuesta
2

Prueba la siguiente macro:

Sub AbrirTodosLosArchivos()
  Dim wb As Workbook
  Dim arch As Variant
  Dim ruta As String
  '
  Application.ScreenUpdating = False
  Set wb = ThisWorkbook
  ruta = wb.Path & "\"
  arch = Dir(ruta & "*.xls*")
  Do While arch <> ""
    Workbooks.Open ruta & arch
    arch = Dir()
  Loop
  Application.ScreenUpdating = True
End Sub

Hola Dante.  De antemano agradecer siempre tu ayuda, ha sido de mucha importancia en mi proceso de aprendizaje.

Te cuento que la macro cuando llega a la linea:

arch = Dir(ruta & "*.xlsx*")

esta generando el siguiente error "Se ha producido el erro '52' en tiempo de ejecución: Nombre o numero de archivos incorrecto"

Cabe aclarar que solo hice el cambio de "*.xls*", por  "*.xlsx*"

De nuevo muchas gracias por tu ayuda

¿Tienes archivos xlsx en el mismo directorio donde tienes la macro?

Prueba con esto:

arch = Dir(ruta & "*.xlsx")

Hola Dante.

Por el momento solo tengo 2 archivos, 1 .xlsm que es la macro donde inserte el código que me compartiste y otro archivo .xlsx que es el que debo abrir.

Con el cambio que me mencionaste, me sigue generando el mismo error.

En tu imagen no veo la carpeta.

¿Los archivos están en tu computadora o están en alguna red?

Prueba con esto:

Sub AbrirTodosLosArchivos()
  Dim wb As Workbook
  Dim arch As Variant
  Dim ruta As String
  '
  Application.ScreenUpdating = False
  Set wb = ThisWorkbook
  ruta = wb.Path & Application.PathSeparator
  arch = Dir(ruta & "*.xlsx*")
  Do While arch <> ""
    Workbooks.Open ruta & arch
    arch = Dir()
  Loop
  Application.ScreenUpdating = True
End Sub

Hola Dante.

Los archivos están en una carpeta de mi computadora,  sin embargo esta carpeta esta enlazada a onedrive  (creo que es por esto que esta generando el error).

Este nuevo código me genera el mismo error.

Cambia tus archivos a una carpeta normal de tu computadora y prueba nuevamente.

Hola Dante....

Que pena tanta molestia y agradezco toda tu ayuda.  Efectivamente en una carpeta normal, si funciona.

Pero te pregunto, hay alguna forma de hacerlo desde esta carpeta que esta enlazada a onedrive, a ya que debo  tenerlo allí ?

Demasiado agradecido por tu ayuda, y de nuevo mil disculpas por la molestia.

No puedo ver cómo se llama la carpeta.

Intenta lo siguiente, cambia esta línea:

ruta = wb.Path & Application.PathSeparator

Por el nombre de la carpeta donde tienes los archivos:

ruta = nombre de la carpeta

Solamente es para probar. Revisa bien el nombre de la carpeta, también el separador entre carpetas. En tu computadora es "\", entonces revisa cuál es el que tienes en tu carpeta y lo escribes correctamente, recuerda que también debe ir al final de la carpeta.

Prueba nuevamente.

Hola Dante

Como siempre demasiado agradecido por tu ayuda... En este caso al poner la ruta si funciona la macro.

Aunque es una ruta quemada, veo que la solución es que las personas que la vayan a utiilzan deben actualizar la ruta.

¡Gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas