Excel. Mejorar macro de búsqueda de archivos
Me gustaría mejor mi macro. He ido construyéndolo poco a poco cogiendo cosas por internet. Hace un proceso de búsqueda que a veces puede tardar demasiado. Voy a intentar explicarlo:
-Funcionalidad:
Tengo una carpeta padre con muchas subcarpetas y dentro, otras tantas, y así muchos niveles. Tenemos unas carpetas llamadas "1. Despiece diseño" distribuidas dentro y mezcladas con el resto en distintos niveles dependiendo de los casos. Dentro tenemos unos Excel que listan una serie de referencias. Algunas de estas se asocian a unos archivos con distintas extensiones con el mismo nombre que la referencia (sin extensión). No existen archivos duplicados. Pueden haber archivos con el mismo nombre pero con distinta extensión. Cada referencia puede llevar asociado un pdf, un pdf y dxf, un excel o ninguno. Eso lo indica la columna J mediante un código de letras. Y las rutas debe devolverlas en la columnas distintas según la extensión. En mi caso en la columna N (pdf o excel) y O (dxf).
Por si ayuda a agilizar la busqueda, estos archivos están siempre dentro de carpetas llamadas:
-"PDF" (extensiones pdf) o subcarpeta de esta "Otros",
- "Despiece" (Extensiones dxf) o subcarpeta de esta "Otros".
- "1. Despiece diseño" (Extensiones Excel)
(Nota: en el caso Excel el archivo se llama "Despiece " & referencia)
Mi intención es un macro que me saque las rutas de los archivos para poder hacer un hipervínculo en el Excel y poder abrirlos desde ahí ya que se pierde mucho tiempo si hay que buscarlos uno a uno. El problema es que la búsqueda puede tardar mucho si no encuentra los archivos rápido.
-Macro
Primero recorre todas las referencias en la columna M y dependiendo de los valores en columna J manda a buscar, o no, los archivos con las extensiones correspondientes.
Luego saca las rutas por separado en columnas N y O según su extensión. (Para separarlas cree una solución no muy fina).
Hay dos búsquedas. La primera hace un recorrido en la carpeta superior que contiene la subcarpeta "1. Despiece diseño" donde está el Excel ya que hay se encuentran bastantes archivos. Está búsqueda la hace muy rápido y funciona correctamente. La segunda, busca en toda la carpeta padre los archivos que no ha encontrado en la búsqueda anterior. Está búsqueda puede dar problemas cuando hay archivos que se encuentran en un nivel muy bajo de subcarpetas. Para agilizar, estas búsquedas se ha intentado limitar indicando que solo busque archivos en carpetas llamadas "PDF" o "Despiece", o su subcarpetas que donde están los archivos.