Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

domingo, 29 de noviembre de 2015

Cómo forzar al usuario a habilitar las macros en Excel

Hola, lo que les quiero comentar es una se esas siatuaciones que pasan de vez en cuando. Uno crea un dashboard muy práctico y bueno para la empresa, pero recibe una llamada de alguien de otro departamento diciendo que el dashboard no les funciona. Después de investigar un poquito, te das cuenta de que la principal razón del porqué no funciona es porque no han habilitado las macros.

Para utilizar cualquier macro en Excel, los usuarios deben "Habilitar" las macros. Es decir, tienen que dar permiso a Excel para utilizar macros de ejecución. Se puede hacer esto haciendo clic en la advertencia de seguridad que aparece por encima de la barra de fórmulas.



La conclusión es que podemos escribir todas las mejores macros en el mundo, pero nunca se usarán a menos que los usuarios "Habiliten las macros". Esto plantea la pregunta de si se puede obligar a los usuarios a habilitar las macros? La respuesta es sí - con un poco de engaño.



La idea es relativamente simple. Se crea una hoja llamada algo así como "INICIO". En esa situación, no hay nada más que una simple advertencia indicando que las macros deben estar habilitadas.

A continuación, se ocultan todas las hojas del libro de trabajo a excepción de la hoja que hemos llamado "INICIO". Y después se escribe una macro sencilla que muestre todas las hojas cuando se abra el libro.

.

En este punto, cuando se abre el libro, Excel pedirá al usuario que han de habilitar las macros. Los usuarios se verán obligados a hacerlo porque lo único que van a ver es la hoja de "INICIO" ya que las otras hojas estarán ocultas!

Con el fin de hacer este trabajo, lo que realmente necesitamos son dos macros: una macro que oculta todas las hojas, menos la hoja  "INICIO" cuando el libro se cierra y otra macro que muestra todas, menos la hoja de "INICIO" cuando se abre el libro.
.


En primer lugar, veamos las acciones que deben ocurrir cuando el libro se cierra.

1. Active el Editor de Visual Basic presionando ALT + F11 en el teclado

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y hacemos clic en el signo (-) con el fin de ver todas las hojas.

3. Hacemos clic en ThisWorkbook.


------------------------------------------------------------------------------------------------------------------------
RECUERDA QUE:

Tú puedes colaborar para seguir manteniendo este blog de una manera gratuita haciendo varios clics en los anuncios de la página. Como referencia, 2 clics por artículo. Muchas gracias por querer colaborar.

------------------------------------------------------------------------------------------------------------------------



4. Seleccione el Workbook_BeforeClose en el menú desplegable Evento.



5. Ahora pegamos el siguiente código:


Paso 1: En primer lugar, declaramos un objeto llamado ws. Esto creará un contenedor de memoria para cada hoja de trabajo exista en el libro.

Paso 2: En el segundo paso, nos aseguramos que la hoja "INICIO" es visible.

Paso 3: En el tercer paso, empezamos el bucle, diciéndole a Excel que queremos evaluar todas las hojas de trabajo en este libro.

Paso 4: En este paso simplemente se compara el nombre de la hoja "INICIO" con la hoja que se está actualmente en el bucle. Esto asegurará que las acciones que vienen a continuación se aplican a todas las hojas excepto a la hoja de "INICIO".

Paso 5: Si los nombres de las hojas son diferentes, escondemos la hoja mediante la propiedad xlVeryHidden. Esta propiedad no sólo oculta la hoja, pero también evita que el usuario la muestre manualmente.

Paso 6: En el paso seis todavía dentro del bucle debemos obtener la siguiente hoja.


Paso 7: Una vez que se evalúan todas las hojas, la macro guarda el libro y termina.


Ahora, vamos a tener que escribir una macro para manejar todas las acciones que tienen que pasar cuando se abre el libro.

1. Active el Editor de Visual Basic presionando ALT + F11 en el teclado

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y hacemos clic en el signo (-) con el fin de ver todas las hojas.

3. Haga clic en ThisWorkbook.

4. Seleccione el evento Open en el menú desplegable Evento.





5. Ahora pegamos el siguiente código:




Paso 1: En primer lugar, declaramos un objeto llamado ws. Esto creará un contenedor de memoria para cada hoja de trabajo exista en el libro.

Paso 2: En el segundo paso, empezamos el bucle, diciendo a Excel que queremos evaluar todas las hojas de trabajo en este libro.

Paso 3: En este paso lo que hacemos es mostrar la hoja en la que el bucle está actualmente. Esto a su efecto muestra todas las hojas de trabajo, ya que cada hoja se hace visible.

Paso 4: En el paso cuatro todavía dentro del bucle debemos obtener la siguiente hoja.


Paso 5: Una vez que todas las hojas se hacen visibles, el paso cinco oculta la hoja de "INICIO". Una vez más, se utiliza la propiedad xlVeryHidden para que el usuario no pueda mostrarla manualmente,



Una vez que se implementan las dos macros, tendremos un libro que sólo funcionará si el usuario habilita las macros!


Te ha gustado el artículo?



No te olvides de mostrar tu gratitud hacia el autor (yo) mediante una de las 3 siguientes acciones:

1. Puedes invitarme a un café pinchando en la siguiente imagen.

Image result for coffee icon


2. Puedes hacer clic en los anuncios mostrados en la página

3. Puedes recomendar el artículo en Google haciendo clic en g+1 (justo después del artículo), también puedes compartirlo en Facebook, y/o dejar comentarios.


Descarga:


Para descargarse el archivo con el ejemplo ve al siguiente enlace:

Quieres aprender más en Excel o tienes algún problema que necesita solución?

Puedo ofrecer servicios de consultoría así como cursos personalizados online. Mírate el siguiente enlace si estás interesado/a.



Subscríbete y recibe todos las entradas por email


Para ello regístrate suministrando tu email en el sitio "Recibe los trucos en tu email" del menú de la derecha.

O sígueme por las redes sociales