Ya vimos en una entrega anterior como impedir que se inserten hojas a nuestro libro de trabajo, ahora vamos a ver como impedir que se eliminen hojas que ya tenemos.
Impedir que un usuario elimine hojas en Excel.
Lo primero que vamos a hacer es ingresar al Editor de Visual Basic y para ello desde la primera hoja utilizaremos la combinación de teclas Alt + F11:
Nos ubicamos en la ventana del Explorador de Proyectos que tenemos en el panel izquierdo de la ventana del Editor de Visual Basic y damos doble clic sobre el Objeto ThisWorkbook y pegamos el siguiente código:
Private Sub Workbook_SheetBeforeDelete(ByVal Sh As Object)
ThisWorkbook.Protect Structure:=True
MsgBox "No es posible eliminar la hoja"
End Sub
La primea línea marca el principio de la macro y vamos a desglosar esta línea para entender un poco mejor esta macro:
- Private Sub: significa Subrutina (Sub) o macro de acceso Privado (Private) y este acceso se aplica cuando se intenta ejecutar desde otra macro.
- Workbook: Corresponde a la indicación de que la macro se aplicará sobre el libro de Excel (Workbook).
- SheetBeforeDelete: Corresponde al evento Antes de Eliminar una Hoja del libro, es decir, cuando se intente eliminar una hoja del libro de trabajo, antes de ejecutar dicha acción, vamos a aplicar unas líneas de código.
En resumen, esta primera línea se interpreta como macro que se ejecutará antes de poder eliminar una hoja del libro de trabajo.
La segunda línea es la instrucción con la cual estamos protegiendo la estructura de todo el archivo con lo cual se impide que se eliminen hojas
La tercera línea es el código con el cual se esta enviando un mensaje informando la imposibilidad de eliminar la hoja del libro de trabajo.
La última línea End Sub marca el final de la macro
Ahora vamos a Excel y probemos a eliminar una hoja del libro de trabajo:
Recomendados.