Macro para abrir un libro dentro de una carpeta diferente.

Tengo un libro llamado Maestro en la carpeta 'C", este tiene una hoja llamada desembolso, cuando pongo un valor en la celda "J3" de este hoja, se debe abrir la carpeta "E\AIM" y a su vez el libro dentro de ella que sea igual al valor de "J3".

Si el valor de "J3" no se corresponde con ningún libro existente dentro de la carpeta 'E\AIM", entonces me abra el libro base.xlsm. Creado tambien dentro de la carpeta AIM del disco E

Tengo una macro que me abre el libro que ya existe, pero no me abre el libro base.xlsm si el valor de J3 no se corresponde con un libro que exista.

Anexo: para una análisis, observar lo resaltado en negrita.

Sub PRUEBA()
Ruta = "E:\AIM\"
archivo = Range("j3").Value
archAlt = "BASE.xlsm"
'
'---- fin Variables
'
Ruta = Ruta & IIf(Right(Ruta, 1) = "\", "", "\")
chk = Dir(Ruta & archAlt)      '........REALICE ESTE CAMBIO, antes tenia chk = Dir(Ruta & archivo) pero asi solo el libro base.xlsm y no el que existe.
If chk = "" Then
Workbooks.Open (Ruta & archAlt)
Else
Workbooks. Open (Ruta & archivo) '... Pero esta, entonces me sombrea esto en amarillo y me dice error 1004, asi me abre bien el archivo que ya esta creado. Esto lo hace al tratar de abrir el archivo base.
End If

End Sub

Respuesta
1

Te anexo la macro actualizada

Sub PRUEBA()
'Act.Por.Dante Amor
    Ruta = "E:\AIM\"
    archivo = Range("j3").Value
    archalt = "BASE.xlsm"
    '
    '---- fin Variables
    '
    Ruta = Ruta & IIf(Right(Ruta, 1) = "\", "", "\")
    If archivo = "" Then
        chk = Dir(Ruta & archalt)      '........REALICE ESTE CAMBIO, antes tenia chk = Dir(Ruta & archivo) pero asi solo el libro base.xlsm y no el que existe.
        If chk = "" Then
            MsgBox "No existe el archivo ni el archivo alterno"
        Else
            Workbooks.Open (Ruta & archalt)
        End If
    Else
        chk = Dir(Ruta & archivo)      '........REALICE ESTE CAMBIO, antes tenia chk = Dir(Ruta & archivo) pero asi solo el libro base.xlsm y no el que existe.
        If chk = "" Then
            chk = Dir(Ruta & archalt)      '........REALICE ESTE CAMBIO, antes tenia chk = Dir(Ruta & archivo) pero asi solo el libro base.xlsm y no el que existe.
            If chk = "" Then
                MsgBox "No existe el archivo ni el archivo alterno"
            Else
                Workbooks.Open (Ruta & archalt)
            End If
        Else
            Workbooks.Open (Ruta & archivo)
        End If
    End If
End Sub

Revisa que el nombre en la celda j3 esté bien escrito con todo y extensión. Revisa también que el archivo base.xlsm exista en la ruta.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Gracias dante.

Esta macro solo abre el libro base.xlsm, aunque coloque un valor en celda de un libro existente.

Por ej. si la celda "J3" de la hoja desembolso pongo el valor 5, (ya que los libros de la carpeta "E\AIM" están por números) deseo que me abra ese libro 5.xlms, si aun no he creado el libro 5.xlms, entonces me abra el libro base.xlms.

El libro que tiene la hoja desembolso este el disco "C"

El carpeta AIM este en el disco "E"

Tienes que poner 5.xlsm

Tienes que poner la extensión

Revisa que en la carpeta efectivamente exista el archivo 5.xlsm


No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas