30 Macros Útiles y Sencillas: Introducción a los Eventos VBA

Vamos a empezar esta serie de artículos con el tema de Macros donde veremos la aplicación de 30 de ellas las cuales nos pueden servir para contar con archivos de Excel más adaptado a nuestras necesidades.

En esta primera entrega vamos a ver el concepto Eventos VBA para entender mejor la aplicación de las macros que veremos en este capítulo.

Para poder aplicar macros, es necesario tener configurado Excel para que pueda ejecutar Macros y para ellos nos dirigimos a las opciones de Excel (Archivo, Opciones), luego nos ubicamos en la última opción de la ventana de opción llamada Centro de Confianza y luego damos clic en el botón Configuración del Centro de confianza:

Con esto se abre la ventana del Centro de Confianza donde nos debemos ubicar en la opción Configuración de macros y en este ítem debemos seleccionar de las opciones que aparecen en la parte derecha de esta ventana la opción Habilitar todas las macros y habilitar la casilla que dice Confiar en el acceso al modelo de objetos de proyectos de VBA:

Luego damos Aceptar hasta quedar ubicados en la hoja Excel

Ahora ya podemos ejecutar macros de cualquier libro de Excel que tengamos en nuestro equipo.

Ingresemos ahora al Editor de Visual Basic, para ello desde el libro Excel utilizaremos la combinación de teclas Alt + F11:

Tenemos al lado izquierdo, un panel izquierdo llamado Ventana de Proyectos donde se muestran todos los libros Excel que tengamos abiertos en este momento; para este caso tenemos:

  1. VBAProject(FUNCRES.XLAM): hace parte de la aplicación misma de Excel y no lo vamos a modificar.
  1. VBAProject (Libro1): Corresponde al único libro de trabajo que tenemos abierto. Podemos ver que de éste se despliega una carpeta que se llama Microsoft Excel Objetos que nos muestra las hojas que hay en el libro de Excel que como vemos tiene dos hojas, Hoja1 y Hoja2. También muestra al final un objeto llamado ThisWorkbook el cual hace referencia a todo el libro de trabajo Excel.

Nota: En caso de que tengamos más libros de Excel abiertos, en esta ventana de Proyectos aparecerán cada uno de ellos.

La programación de las macros se hace sobre las hojas que tengamos en el libro (Ej.: eliminar filas) pero también se pueden hacer macros para ejecutar código sobre todo el libro de trabajo (Ej.: Ocultar las fichas de las hojas) y una tercera opción para programar macros sería sobre unos objetos llamados Módulos que veremos más adelante en otras entregas.

Así que cuando se requiera realizar una macro para ejecutar código sobre una hoja lo podemos hacer dando doble clic a la hoja desde la Ventana de proyectos. Vamos a realizar esto sobre la Hoja1:

Vemos entonces que en la parte derecha del Editor de Visual Basic, ya aparece un espacio en blanco lo que significa que está en modo de edición donde ya podemos digitar los códigos que necesitemos programar y de esta manera, los códigos que ingresemos serán aplicados directamente sobre la Hoja1.

Encima del espacio en blanco de edición de macros, tenemos dos listas de opciones:

La primera, donde se muestra entre paréntesis la palabra General, es donde podemos seleccionar los objetos ActiveX que tengamos en la hoja  (y que ya vimos en las entregas anteriores). Como es un libro de trabajo nuevo, al desplegar esta opción solo nos aparece el objeto Worksheet que siempre está por defecto:

Al seleccionar este objeto Worksheet, aparecerán en el espacio de edición de códigos las líneas de inicio y de fin de la Macro que se ejecutará al presentarse algún EVENTO en el Libro de Excel (Worksheet):

La primea línea marca el principio de la macro y vamos a desglosar esta línea para entender un poco mejor esta macro:

Private Sub: significa Subrutina (Sub) o macro de acceso Privado (Private) y este acceso se aplica cuando se intenta ejecutar desde otra macro.

Worsheet: Corresponde a una macro que se aplicará a la hoja de Excel (Worksheet) sobre la que estemos ubicados desde la venta de explorador de proyectos

SelectionChange(ByVal Target As Range): Corresponde al evento Cambio de selección y significa que los códigos que vayamos a programar en esta macro se ejecutaran automáticamente al presentarse un cambio en la selección de las celdas (Target) que indiquemos.

Es importante marcar que hay varios eventos o acciones que se pueden dar en la interacción de las hojas de un libro de Excel como es Activar, Calcular, Cambiar Selección, entre otras y es precisamente desde la aplicación de estos eventos que se pueden ejecutar macros. La configuración de los eventos la podemos realizar desde el segundo cuadro de opción que tenemos encima del espacio de programación de códigos:

Vemos que tenemos muchos otros eventos que podemos seleccionar para ejecutar macros de manera automática y dependiendo del evento seleccionado se podrán ejecutar de una u otra manera. Por ejemplo, si seleccionamos el evento Activate, la macro que programemos se ejecutara automáticamente al Activarse la Hoja 1(en este caso que es desde donde estamos ubicados), por ejemplo, si desde el libro de Excel estamos ubicados en la Hoja 2 y luego damos clic en la pestaña para pasar a la Hoja 1, en ese momento se ejecutará la macro que programemos en este evento. Hagamos el ejercicio y seleccionemos el evento Activate:

Vemos que en el espacio de edición de códigos aparecen la línea de inicio y de fin para el evento Activate de la hoja que seleccionamos y debajo quedaron las líneas de inicio y de fin del evento SelectionChange también para la misma hoja pero estas últimas líneas o la podemos borrar o desde que no agreguemos códigos adicionales las podemos dejar.

Vamos a pegar el siguiente código dentro de las líneas de inicio y de fin de la macro que se activa con el evento Activate:

MsgBox "Has seleccionado la Hoja 1"

Esa línea lo que haces mostrar un mensaje informativo al momento de activarse la Hoja 1. Vamos a Excel y probemos a cambiar entre las hojas y veremos como se muestra el mensaje al activar o seleccionar la Hoja 1:

Durante las siguientes entregas, veremos el uso que podemos dar a distintos eventos que tenemos a disposición en VBA.

Descargar archivo de trabajo.

MÁS SOBRE

Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.

Siéntase libre de opinar

Una opinión
  1. RONALD dice:

    hola tengo un libro con varias hojas y cada hoja esta con nombres fechas ,ejemplo hoja 03-07-2016.ect
    y quiero una macro donde con el dtpicker se pueda seleccionar la hoja mediante la fecha

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.