Existen varias formas de ejecutar una macro en MS Excel, las cuales se pueden resumir de la forma siguiente:
1. En la ficha programador dándole clic al icono "Macros", buscando la macro que necesitamos en la ventana que saldrá y presionando el botón "ejecutar".
2. Asignándole una letra en la misma ventana en el botón "Opciones". De esta forma por ejemplo, si le hemos asignado la letra "q", cada vez que presionemos ctrl + q, se ejecutará la macro. Hay que tener cuidado de no elegir letras que ya estén predeterminadas (como "c" de copiar) pues, si lo hacemos, en ese archivo se desactivará la opción predeterminada y se ejecutará la macro.
3. Asignándole un botón de la barra de herramientas o en el área de un objeto, gráfico o control.
4. Finalmente, podemos hacer que la macro se ejecute automáticamente al abrir un libro.
En el siguiente ejemplo, trataremos este último caso. Supongamos que una empresa tiene unos estados financieros (EEFF) al cuál sólo desea que accedan un número restringido de personas. Para ello proporciona los referidos EEFF dentro de un archivo de MS Excel pero que se encuentran dentro de un libro oculto.
Asimismo, desarrolla un formulario que exija ingresar una contraseña si se quiere tener acceso a los libros del archivo. Para ello, en la sección del botón "ingresar" del formulario se han desarrollado los siguientes comandos:
Private Sub CommandButton1_Click()
If TextBox1.Text = "A357" Then
UserForm1.Hide
MsgBox "Desoculte la hoja EEFF1"
Else
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
MsgBox "Debe ingresar su contraseña."
Cancel = 1
CloseMode = 1
End If
End Sub
En la primera parte se indica que se deberá ingresar la clave "A357" en el cuadro de texto del formulario, si se desea acceder al archivo. En la segunda se desactiva el botón que cierra el formulario. Así también, de ingresar la clave correcta, se le envía automáticamente un mensaje que indica al usuario que tiene que desocultar la hoja donde se encuentran los EEFF.
(Para mayor visualización de la imagen, hacer click en la misma)
Y lo más importante, para que el formulario y sus macros se activen inmediatamente al abrir el archivo, se ejecutan los siguientes comandos:
Private Sub Workbook_Open()
UserForm1.Show
End Sub
(Para mayor visualización de la imagen, hacer click en la misma)
Antes de cerrar el archivo, cerciorándonos que la hoja de los EEFF se encuentre oculta y lo guardamos como un archivo de "sólo lectura".
De esta forma, cuando alguien abra el archivo, visualizará inmediatamente el formulario que le pide una contraseña y no podrá ingresar al archivo hasta que la haya ingresado, como se muestra en los siguiente gráficos.
Se adjunta el archivo con el ejemplo (la contraseña es A357):
Autor: Luis Tarazona Ramos.
29/07/2020 a las 12:47 pm
Hola estoy utilizando este codigo en en Thiswork book; pero me da un error de compilacion.
Podrian apoyarme para indicarme que estoy haciendo mal...???
Agradezco de antemano su atencion y apoyo
Private Sub Workbook_open()
MsgBox "¡Bienvenido a mi hoja Excel!", vbQuestion + vbYesNo, "Cambiar Mes Operacion"
If (respuesta = vbYes) Then
End If
Sheets("Carga").Activate
Range("F5").Activate
Else
If (respuesta = vbNo) Then
Sheets("dato").Activate
End If
End Sub