Cerrar archivos desde otro
Hola! He armado estos códigos con la finalidad de que desde un archivo (botón) se cierren otros tres, uno tras otro. Por otro lado, otro código que no permite cerrar cualquiera de los tres directamente. El problema es que solo cierra el primero y no los otros dos. Por favor me pueden ayudar diciéndome que estoy haciendo mal.
Código en el archivo Menu_Modulo
Private Sub CommandButton4_Click()
Workbooks("Modulo_Inventario.xls").Activate
Application.Run ("Modulo_Inventario.xls!cerrar_Inv")
Workbooks("Modulo_OC.xls").Activate
Application.Run ("Modulo_OC.xls!cerrar_OC")
Workbooks("Modulo_Proyectos.xls").Activate
Application.Run ("Modulo_Proyectos.xls!cerrar_Proy")
ThisWorkbook.Activate
Cierre = "SI"
ActiveWorkbook.Close SaveChanges:=True
Codigo en archivo Modulo_Inventario
Option Explicit
Sub cerrar_Inv()
Cierre = "SI"
ActiveWorkbook.Close SaveChanges:=True
End Sub
Codigo en archivo Modulo_OC
Option Explicit
Public Cierre As String
Sub cerrar_OC()
Cierre = "SI"
ActiveWorkbook.Close SaveChanges:=True
End Sub
Codigo en archivo Modulo_Proyectos
Option Explicit
Public Cierre As String
Sub cerrar_Proy()
Cierre = "SI"
ActiveWorkbook.Close SaveChanges:=True
End Sub
Y en cada uno de los tres archivos anteriores
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Cierre <> "SI" Then
Cancel = True
MsgBox "CERRAR DESDE MENU_MODULOS", vbOKOnly + vbInformation, "**OPCION_ INHABILITADA**"
End If
End Sub
Muchas gracias.
Código en el archivo Menu_Modulo
Private Sub CommandButton4_Click()
Workbooks("Modulo_Inventario.xls").Activate
Application.Run ("Modulo_Inventario.xls!cerrar_Inv")
Workbooks("Modulo_OC.xls").Activate
Application.Run ("Modulo_OC.xls!cerrar_OC")
Workbooks("Modulo_Proyectos.xls").Activate
Application.Run ("Modulo_Proyectos.xls!cerrar_Proy")
ThisWorkbook.Activate
Cierre = "SI"
ActiveWorkbook.Close SaveChanges:=True
Codigo en archivo Modulo_Inventario
Option Explicit
Sub cerrar_Inv()
Cierre = "SI"
ActiveWorkbook.Close SaveChanges:=True
End Sub
Codigo en archivo Modulo_OC
Option Explicit
Public Cierre As String
Sub cerrar_OC()
Cierre = "SI"
ActiveWorkbook.Close SaveChanges:=True
End Sub
Codigo en archivo Modulo_Proyectos
Option Explicit
Public Cierre As String
Sub cerrar_Proy()
Cierre = "SI"
ActiveWorkbook.Close SaveChanges:=True
End Sub
Y en cada uno de los tres archivos anteriores
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Cierre <> "SI" Then
Cancel = True
MsgBox "CERRAR DESDE MENU_MODULOS", vbOKOnly + vbInformation, "**OPCION_ INHABILITADA**"
End If
End Sub
Muchas gracias.
Respuesta de angelcrisnor
1