miércoles, 17 de agosto de 2016

Como evitar cerrar libros de Excel con VBA


He vuelto!!! y con muchos mas trucos y tips que he aprendido en estos últimos meses. Entre ellos me preguntaron como evitar cerrar un libro de Excel desde un macros, y aquí tengo la respuesta.
Es muy sencillo, allí van los pasos:

Paso 1: Primero entro al Visual Basic for Application (Con las teclas ALT + F11).


Paso 2: Inserto un módulo (Menú Insertar // Módulo) y copio el siguiente código:

Public Permiso As Boolean

Sub Cierre()
  Call DamePermiso

  ActiveWorkbook.Save
  ActiveWorkbook.Close
End Sub

Public Sub DamePermiso()
  Permiso = True
End Sub

Paso 3: En el objeto ThisWorkbook copio el siguiente código:


Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Permiso <> True Then
    MsgBox "No tiene permiso para cerrar"
    Cancel = True
End If

End Sub

Paso 4. Cierro el Visual Basic.

Paso 5. En una hoja de Excel agrego un objeto o una forma y le asigno la Macro Cierre





Ahora cada vez que cierren el archivo desde la esquina superior derecha, o desde el menú Archivo // Cerrar;  les saldrá el siguiente mensaje:

Solo si hacen clic en el botón que tienen asignado la macros Cierre , el archivo libro se cerrará y guardará automáticamente..

Espero que les sirva.

Ing. Enrique Neciosup Morales