Ejecutar macros al abrir un archivo en Excel con el evento Workbook_Open

El evento Workbook_Open lo uso constantemente para ejecutar algunas macros al momento de abrir mis archivos o incluso lo uso cuando toca desarrollar un add-in.

En este mismo Blog, podrás ver que en muchos ejemplos uso este evento. Da click aquí para ver los artículos.

Ver video Haz que Excel te salude ejecutando macro al abrir el archivo

SUSCRÍBETE a nuestro canal para aprender más de Excel y macros.

Cómo lo hacemos

Usar el evento Workbook_Open realmente es tan sencillo, que pensarás que por que no habías usado antes.

  • Abrimos el IDE de vba. La manera más sencilla es presionar Alt + F11.
  • En la parte izquiera del IDE ubicamos el nombre del nuestro archivo y damos doble click sobre el objeto ThisWorkbook.

image

Figura 1. IDE de vba.

  • Para activar el evento Workbook_Open nos posicionamos en la parte derecha y damos click sobre el Como que dice (General) y elegimos Workbook.
  • Al dar click se añadirá el código necesario para para el evento.

image

Figura 2. Activando el evento Workbook_Ope en el IDE de vba.

El código que querramos que se ejecute irá entre las líneas Private Sub Workbook_Open() y End Sub.

Código vba de ejemplo

Para este artículo usaremos un ejemplo que mandará un mensaje dependiendo la hora en la que se abre el archivo, siendo Buenos días, tardes o noches.

image

Figura 3. Mensaje de bienvenida al abrir un archivo.

Usaremos el siguiente código vba para lograr lo anterior.

Private Sub Workbook_Open()

Dim HoraActual As Date

    HoraActual = Time

    Select Case HoraActual

    Case "00:00" To "05:59:59"
        MsgBox "Buenas noches"

    Case "06:00" To "11:59:59"
        MsgBox "Buenos días"

    Case "12:00" To "18:59:59"
        MsgBox "Buenas tardes"

    Case "19:00" To "23:59:59"
        MsgBox "Buenas noches"

    End Select

End Sub

Anexos

Artículos donde también usando el evento Workbook_Open:

You may also like...

Leave a Reply

Your email address will not be published.

%d bloggers like this: