Ícono del sitio Formulas Excel

Forzar activacion de macros en excel

Síguenos y dale Like:
20k
7400
1k

Probablemente en algún momento tienes la necesidad de hacer que las macros siempre estén activas para poder operar alguna aplicación que has programado en excel y la funcionalidad de esa aplicación depende directamente de ello, ejemplo: tienes una App contable en Excel y no deseas que se haga mal uso de la misma, así que de algún modo es necesario forzar la activacion de las macros.

Esto normalmente se da por el hecho de que que el usuario deberá usar las funcionalidades programadas, en lugar de hacer uso manual de los registros o procesos requeridos, evidentemente si no se activan las macros, dichas funcionalidades programadas no estarán disponibles, es por ello que de alguna manera tenemos que hacer que el usuario active las macros.

Seguridad de macros

Para que este método funcione, es necesario hacer la configuración de macros, de tal modo que el usuario tenga la opción de activar o no las macros, normalmente esta configuración esta pre-determinada de tal modo que ninguna macro se ejecuta.

Para cambiar esto hacemos lo siguiente: abrir excel/ click en archivo/ opciones/ centro de confianza/ configuración de centro de confianza/ configuración de macros/ marcamos la opción “des-habilitar todas las macros con notificación”/ aceptar.

Con esa configuración las macros no se ejecutan de inicio, sino que se presenta un mensaje donde se tiene la opción de habilitar, esto al momento de abrir un libro con macros.

Recomiendo esa opción porque se tiene un poco mas control sobre lo que se ejecuta.

Ocultar las hojas desde el editor VBA

Lo primero es ocultar las hojas que no se deben mostrar cuando las macros no están activas, no se pueden ocultar todas las hojas, así que dejaremos solo una de ellas, en esa misma mostraremos un mensaje al usuario indicando que debe activar las macros para poder trabajar con el libro.

Para entrar al editor VBA presionamos ALT-F11.

Primero seleccionamos la hoja que queremos ocultar, en la parte de abajo aparecen sus propiedades, en la propiedad “Visible” seleccionamos la opción 2 “xlSheetVeryHidden”, al activar esa opción, esa hoja queda oculta en el libro pero no se puede mostrar con el comando “Mostrar” cuando se da clic derecho sobre las pestañas de las hojas, solo se podrá mostrar mediante código VBA.

Debemos poner la misma propiedad “xlSheetVeryHidden” a todas las hojas que no se deben mostrar si las macros no se activan, dejaremos la “Hoja1” en este caso para mostrar el mensaje.

Código para hacer visibles las hojas

En el editor VBA, damos click en ThisWorkbook ( en el la barra lateral izquierda del editor ), en la parte superior de la sección donde se escribe el código seleccionamos la opción “Workbook” y en la pestaña de la derecha seleccionamos el evento “Open”.

Y abajo ponemos este código, mismo que se ejecutara justo al abrir el libro ( si las macros son activadas ).

Option Explicit

Private Sub Workbook_Open()
  Dim hoja As Worksheet

  For Each hoja In ThisWorkbook.Worksheets
    hoja.Visible = xlSheetVisible
  Next hoja

  Sheets("Hoja1").Visible = xlVeryHidden
End Sub

Si observamos el código, al hacer visibles las hojas, la hoja que contiene el mensaje se ocultara (Hoja1)

Ocultarlas hojas cuando las macros no se activan

En este caso el procedimiento es muy similar, pero esta vez lo hacemos con el evento BeforeClose, este código se ejecuta justo antes de cerrar el libro.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim hoja As Worksheet

  Sheets("Hoja1").Visible = xlSheetVisible

  For Each hoja In ThisWorkbook.Worksheets
    If hoja.Name <> "Hoja1" Then
      hoja.Visible = xlSheetVeryHidden
    End If
  Next hoja

  ActiveWorkbook.Save
End Sub

El codigo es casi igual, en este caso al inicio debemos mostrar la hoja del mensaje, esto porque luego se ocultaran todas las hojas, asi que una debe estar disponible  para poder ocultar las otras.

Observar que he puesto una condicional para que solo se oculten las hojas que no sean la “Hoja1”.

Respecto al mensaje que se muestra cuando las macros no se activan, es importante indicar claramente que no se podrá trabajar con el libro si dichas macros no se activan.

Como darle mas protección a este metodo

Evidentemente alguien con un poco de conocimiento podrá entrar al editor de VBA y desbloquear esta programacion, para evitar esto solo debemos poner contraseña al proyecto.

Para esto damos click derecho en el nombre del proyecto en el que estamos trabajando ( en el editor VBA ) y seleccionamos la opción “Propiedades VBA” y click en la pestaña “Protección”.

 

Espero que te sea de ayuda, nos veremos en la próxima entrega.

Síguenos y dale Like:
20k
7400
1k
Salir de la versión móvil