¿Cómo bloquear botón cerrar excel de todos los libros y de la aplicación?

Tengo una app en excel que me abre dos libros más y quiero que los libros que abre mi app sólo se puedan cerrar con el botón cerrar que tengo en mi app.

1 Respuesta

Respuesta
1

En cada uno de los libros que abre tu app tienes que poner el siguiente código en los eventos de workbook. Debes guardar los libros como excel habilitado para macros.

Public cerrar
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Por.DAM
    If cerrar Then
        Cancel = False
    Else
        MsgBox "Solamente se puede cerrar desde la app"
        Cancel = True
    End If
End Sub

Instrucciones para poner la macro en ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. Del lado derecho copia la macro

Ahora en tu libro que tiene la app, crea un módulo y pon el siguiente código

Sub ParaCerrar()
'Por.Dante Amor
    With Workbooks("archivo datos")
        .cerrar = True
        .Close
    End With
End Sub

Si son varios libros puedes repetir el código de esta forma, por ejemplo para 2 libros:

Cambia "archivo datos" y "otro libro" por los nombres reales de tus libros.

Sub ParaCerrar()
'Por.Dante Amor
    With Workbooks("archivo datos")
        .cerrar = True
        .Close
    End With
    '
    With Workbooks("otro archivo")
        .cerrar = True
        .Close
    End With
    '
End Sub

Si la app almacena en alguna variable los libros abiertos, entonces utiliza esa misma variable para ir cerrando los libros, de esto no puedo poner un ejemplo porque tendría que revisar cómo está tu app para abrir los libros.

Este código funciona pero tengo un problema y es que yo no puedo modificar el código de los otros libros, ya que están protegidos porque no los he hecho yo.

Ese pequeño detalle no lo habías comentado, si no puedes modificar el evento cerrar de los otros libros entonces no puedes controlar que los cierren.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas