Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

¿Cómo ejecutar macros al abrir un archivo en Excel?

| 1 comentario

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.

ejecutar macros al abrir archivo 01

(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

ejecutar macros al abrir archivo 02

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

ejecutar macros al abrir archivo 03

ejecutar macros al abrir archivo 04

ejecutar macros al abrir archivo 05

Se adjunta el archivo con el ejemplo (la contraseña es A357):

Información_empresa

Autor: Luis Tarazona Ramos.

Un comentario

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

Deja una respuesta

Los campos requeridos estan marcados con *.