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
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
- 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.