Llamar a un libro abierto o a uno cerrado

Ante todo muchas gracias por su atención, mi pregunta tiene que ver con una macro que estoy armando para copiar los datos de una hoja llamada "Relaciones" que se encuentra un libro llamado "Producción diaria", hacia otro libro que denomine "Relaciones 2008".
Mi problema surge cuando llamo a este último libro, y este se encuentra abierto o cerrado.
En el caso que no esta abierto el libro "Relaciones 2008" no existe problema. Ahora cuando quiero realizar la misma operación y esta abierto, sale un aviso que informa que este libro ya esta abierto y que si lo vuelvo abrir los cambios no guardados se perderán.
Por lo tanto mi pregunta es como puedo poner una condición que analice si es que el libro esta cerrado, entonces ábralo y copie, y si esta abierto solo copie.
Te envío con el código que he trabajado, desde ya muchas gracias
Sub Relaciones()
Workbooks.Open ("\\Fernando\mis documentos\PRODUCCION 2008\Relaciones 2008.xls")
Windows("Produccion Diaria.xls").Activate
Sheets("RELACIONES").Select
Sheets("RELACIONES").Copy Before:=Workbooks("Relaciones 2008.xls").Sheets(1)
Sheets("RELACIONES").Select
Sheets("RELACIONES").Name = Cells(3, 4)
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Windows("Produccion Diaria.xls").Activate
Sheets("ING. DATOS").Select
Range("A2").Select
End Sub

1 respuesta

Respuesta
1
Pienso que puedes hacer algo como esto:
On Error GoTo cerrado
Windows("Relaciones2008.xls").Activate
GoTo abierto
cerrado:
Workbooks.Open Filename:=Ruta & "Relaciones2008.xls"
abierto:
'de aquí en adelante sería igual
Te agradezco tu pronta respuesta y si bien le realice algunos cambios a la rutina, porque seguía apareciendo la ventana donde me deía que se encontraba el archivo abierto, la rutina que me enviaste me guió para resolver el problema en cuestión. GRACIAS !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas