30 Macros Útiles y Sencillas: Impedir Insertar Hojas

Otra macro que puede ser de utilidad sobre todo para aspectos de garantizar que no se pueda modificar el libro de trabajo es la que veremos a continuación con la cual se puede impedir que se adicionen más hojas de las que tenemos en nuestro libro. La idea es que si tenemos un libro con dos hojas por ejemplo, el mismo siempre tenga solo dos hojas y ni una más; supongamos un escenario en el que tenemos un archivo con fórmulas 3D (las cuales como ya vimos en una entrega anterior), en este caso no es conveniente que se adicionen más hojas al libro por parte de personas que no conozcan bien el archivo.

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_NewSheet(ByVal HojaNueva As Object)

Application.DisplayAlerts = False

MsgBox "No se permite adicionar mas hojas en este libro."

HojaNueva.Delete

Application.DisplayAlerts = True

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).

NewSheet: Corresponde al evento nueva hoja, es decir, cuando se inserte una nueva hoja en el libro excel.

(ByVal HojaNueva As Object): Es la definición de un objeto que damos como nombre HojaNueva en el cual se referencia la hoja nueva que se intente insertar. Este objeto es necesario ya que en realidad lo que sucede es que una vez se inserte una nueva hoja, inmediatamente es eliminada, es decir, no se impide que se inserte una hoja sino que una vez insertada se elimina, así que se requiere de este objeto para poder eliminar la hoja.

En resumen, esta primera línea se interpreta como macro que se ejecutará una vez se inserte una nueva hoja en el libro de trabajo.

La segunda línea (Application.DisplayAlerts = False) lo que está haciendo es que no se muestres ninguno de los mensaje de confirmación que tiene Excel como guardar cambios, eliminar hoja, entre otros, es decir, al eliminar una hoja Excel pide confirmar dicha acción, así que con esta línea lo que se hace es desactivar el mensaje de confirmación de eliminación de la hoja para evitar que no sea eliminada. Al dar el valor False al final de esta línea se está desactivando la confirmación de eliminación.

La tercera línea es mensaje informativo para la persona que intente insertar una hoja nueva donde se indica que no se puede insertar hojas nuevas.

La cuarta línea es la instrucción de eliminación de la hoja nueva.

La quinta línea lo que hace es activar nuevamente los mensajes de confirmación de Excel para cualquier otra acción por ejemplo, si cerramos el libro sin guardar, Excel primero pregunta si se desean guardar los cambios, así que es necesario dejar el valor True para que se puedan seguir mostrando los mensajes de confirmación de Excel.

La última línea End Sub marca el final de la macro

Ahora vamos a Excel y probemos insertando una nueva hoja:

Descargar archivo de trabajo

MÁS SOBRE

Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.

Siéntase libre de opinar

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.