Desactivar BeforeClose si no se cumple condición Workbook_Open

Hola tengo una macro en Workbook_Open que hace que si la fecha actual del Windows es superior a determinada fecha que hay en una celda, se muestre un mensaje y se cierre el archivo, el problema que tengo es que en el mismo libro tengo una orden en BeforeClose que pregunta si desea cerrar el libro o no, de manera que si en la primera instrucción (Workbook_Open) no se cumple la condición, al cerrar la aplicación me sale el mensaje preguntando si deseo cerrar o no, y si le digo que no, el archivo continua abierto y se puede modificar.

Mi pregunta es como puedo hacer para que si no se cumple la instrucción de Workbook_Open, ¿el libro se cierre y no se ejecute el BeforeClose?

Gracias a quien pueda ayudarme.

1 Respuesta

Respuesta
1

Estas macros van de ejemplo. Colocá las instrucciones según tu código ya desarrollado junto con la variable en el objeto Thisworkbook.

Dim cierre As Byte
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If cierre = 1 Then Exit Sub
sino = MsgBox("Desea cerrar el libro?", vbYesNo, "CONFIRMAR")
If sino <> vbYes Then Cancel = True
End Sub
Private Sub Workbook_Open()
If Date > Sheets("Hoja1").Range("A15") Then
    cierre = 1
    ActiveWorkbook.Close False
End If
End Sub

Si bien se puede 'evitar' la ejecución de algún evento con la instrucción EnableEvents en False, no sirve para este caso.

Sdos

Elsa

Añade tu respuesta

Haz clic para o