Macro que busque un archivo en diferentes rutas

Tengo un libro de excel "X" que al ejecutar la macro, busca en una ruta "C1" un archivo "Y" y luego se hace una alimentación de datos, sin embargo, cuando otra persona ejecuta la macro en su propia máquina, no encuentra el libro debido a que tiene otra ruta, por lo que me gustaría preguntar si tienen alguna idea de hacer que la macro ejecutada desde el libro "X" busque el libro "Y" en la ruta "C1" y si no lo encuentra que lo busque en una ruta "C2", como observación decir que el libro "X" está en una ruta distinta que el libro "Y".

1 respuesta

Respuesta
2

Te presento 2 ideas:

1- Con 2 posibles rutas:

Sub abreLibro()
'x Elsamatilde
Dim Ruta1 As String, Ruta2 As String, libro As String
Ruta1 = ActiveSheet.[C1]
Ruta2 = ActiveSheet.[C2]
libro = "Libro TALLER.xlsm"
'saber si se encuentra en la ruta1
If Dir(Ruta1 & "\" & libro) <> "" Then
    Workbooks.Open (Ruta1 & "\" & libro)
ElseIf Dir(Ruta2 & "\" & libro) <> "" Then
    Workbooks.Open (Ruta2 & "\" & libro)
Else
    MsgBox "El libro no se encuentra en ninguna de las 2 rutas."
End If
'a partir de aquí seguirás con el libro activo que se acaba de abrir.
End Sub

2- Permitir al usuario buscar el libro:

Sub buscalibro()
'x Elsamatilde
Dim milibro
'controla posible error de apertura      'ver tratamiento de errores en cap. 11
On Error Resume Next
'la variable guarda la ruta y nombre del archivo a abrir
milibro = Application.GetOpenFilename
'si la variable está vacía significa que cancelamos la ventana de diálogo
If milibro = False Then Exit Sub
'abrir el libro elegido
Workbooks.Open milibro    'pasa a ser el libro activo.
On Error GoTo 0
End Sub

* Ejemplos extraídos de mi manual 500Macros (en sus 2 versiones).

https://www.youtube.com/@ElsaMatilde 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas