Como saber si un libro de trabajo esta abierto

Tengo dos libros en excel uno se llama "YAFO_ACCESO_FORM" y el otro se llama YAFO_EBIT_AMORTIZACIONES" los dos libros están en formato macro (.xlsm).

La cosa es que en el libro "YAFO_ACCESO_FORM" tengo una macro que abre el otro libro, pero quiero colocar una validación que mire si el libro de amortizaciones esta abierto pues no ejecute la otra macro.

Había pensado colocar el código en el libro de form y algo así

IF YAFO_EBIT_AMORTIZACIONES is open then

exit sub

end if 

Luego del end if colocaria la macro que abre el libro de amortizaciones

2 respuestas

Respuesta
2

Te anexo el código

 '
    'valida nombre de archivo
    For Each libro In Workbooks
        If libro.Name = "YAFO_EBIT_AMORTIZACIONES.xlsm" Then
            MsgBox "El libro ya está abierto"
            Exit Sub
        End If
    Next
    '
    'continúa con tu macro
    '

.

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

.

Avísame cualquier duda

.

Respuesta
1

.19.05.17

Buenos días, Montserrat

Como mencionas que ya tienes una rutina, creo que deberías reemplazar en ella el paso que abre el otro archivo por las siguientes instrucciones que también lo abren sólo si no estuviese abierto:

Sub AbreArch()
ArchAmort = "YAFO_EBIT_AMORTIZACIONES"
LaCarpeta = "C:\trabajos"
'  
LaCarpeta = Trim(LaCarpeta) & IIf(Right(Trim(LaCarpeta), 1) = "\", "", "\")
'control de archivo abierto
'  
On Error Resume Next
Set FileOp = Workbooks(ArchAmort)
If Err <> 0 Then Workbooks.Open LaCarpeta & ArchAmort
On Error GoTo 0
Err.Clear
End If
Set FileOp = Nothing
End Sub

.

.

. ----- Te quedó pendiente valorizar el tiempo que te dediqué ----

Buenas,

Si hubieses tenido la oportunidad de probar la solución, espero que te haya ayudado a resolver tu problema.

Cordialmente,
Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas