Impedir eliminar hoja en Excel

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:

Descargar archivo de trabajo

Recomendados.

Compártalo en Facebook Compártalo en Twitter

Déjenos su opinión

4 Opiniones
  1. DIEGO FE Dice:

    Buenas noches, agradecido por el contenido, me pueden por favor indicar de que manera se vuelve a activar los menús de copiar, eliminar las hojas que previamente se desactivaron

    Gracias

    Responder
    • ABRAHAM Dice:

      AMIGO TIENES LAS SOLUCION, YO LO ACTIVE Y NO SE COM QUITARLO

      Responder
    • UMALSAPE Dice:

      creando una macro que contenga la orden:

      ThisWorkbook.Protect Structure:=false

      si alguien intenta eliminar una hoja solo ejecuta ésta orden en una macro y a seguir trabajando.
      Se puede proteger una hoja en concreto del libro y el resto dejarlo libre si realizas la explicación de Oscar en una “hoja” en vez de en “ThisWorkbook”, gracias a su explicación he conseguido proteger 3 hojas del libro y dejo el resto del libro que funcione normalmente.

      Responder
  2. Roberto Lagos Dice:

    Gracias por su ayuda

    Responder
En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo con respeto, sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.

Este sitio web utiliza cookies propias y de terceros para ofrecer un mejor servicio. Al seguir navegando acepta su uso.