Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. VBA Excel (versiones 2021 y Microsoft 365)
  3. Administración de eventos
Extrait - VBA Excel (versiones 2021 y Microsoft 365) Programar en Excel: Macros y lenguaje VBA
Extractos del libro
VBA Excel (versiones 2021 y Microsoft 365) Programar en Excel: Macros y lenguaje VBA Volver a la página de compra del libro

Administración de eventos

Presentación

Un evento es una acción del usuario o del sistema reconocido por un objeto de Microsoft Excel. El evento desencadena un procedimiento, asociado al evento del objeto activo.

Estos procedimientos le permiten asociar un código personalizado en respuesta a un evento que se produce en un objeto de Excel (libro, hoja, formulario, gráfico, etc.).

images/08MP01.png

Escritura de eventos

1. Eventos de libro, de hoja o de formulario

Usted puede acceder a los procedimientos de eventos asociados a un objeto de la siguiente manera:

 En la ventana Explorador de proyectos, haga doble clic en el objeto deseado (libro, hoja o formulario) para hacer que aparezca la ventana de código correspondiente. 

 Abra la lista desplegable a la izquierda de la ventana de código y seleccione Workbook, Worksheet o UserForm, según el objeto seleccionado.

 También puede seleccionar un evento vinculado al objeto seleccionado en la lista desplegable de la derecha, para asociarle un código personalizado.

La ejecución de los procedimientos de eventos se puede desactivar en cualquier momento asignando el valor False a la propiedad EnableEvents del objeto Application.

Ejemplo

Este ejemplo muestra cómo obtener un listado histórico de todos los hipervínculos visitados en la hoja de cálculo activa.

images/CAP09IMG01R.PNG

Resultado en Excel:

images/09RITEXCV01.png

2. Eventos del objeto Application

Se necesitan tres etapas para la escritura y ejecución de los eventos del objeto Application.

Etapa 1

 Inserte un módulo de clase:

Insertar - Módulo de clase

o abra la lista images/08RI03a.png y haga clic en Módulo de clase.

 Una vez insertado el módulo, asígnele un nombre.

Ejemplo

Dele el nombre ObjApplication al módulo de clase.

Etapa 2

 En el módulo de clase, cree un objeto Application con el siguiente código:

Public WithEvents NomObjeto As Application 

Ejemplo

Creación del objeto oMiAplicación como aplicación.

Public WithEvents oMiAplicacion As Application 

El objeto así creado queda disponible en la lista de la izquierda del módulo.

 Seleccione el objeto creado en la lista de la izquierda del módulo y luego seleccione el evento esperado en la lista de la derecha. Escriba el código de los procedimientos que desea generar.

Ejemplo

Creación de dos procedimientos de eventos: el primero realiza la inserción de una nueva hoja; el segundo, la creación de un nuevo libro.

Public WithEvents oMiAplicacion As Excel.Application  
______________________________________________________________________  ...

Eventos del objeto Application

AfterCalculate

Ocurre después del recálculo de los formularios del libro.

NewWorkBook

Ocurre al crear un nuevo libro.

ProtectedViewWindowActivate

Ocurre al activar una ventana protegida.

ProtectedViewWindowBeforeClose

Ocurre inmediatamente antes de cerrar una ventana protegida o un libro dentro de una ventana protegida.

ProtectedViewWindowBeforeEdit

Ocurre al modificar una ventana protegida.

ProtectedViewWindowDeactivate

Ocurre al cerrar una ventana protegida.

ProtectedViewWindowOpen

Ocurre cuando se abre un libro en una ventana protegida.

ProtectedViewWindowResize

Ocurre cuando se redimensiona una ventana que se encuentra en modo protegido.

SheetActivate

Ocurre al activar una hoja.

SheetBeforeDoubleClick

Ocurre al hacer doble clic en una hoja de cálculo, antes de la acción predeterminada para el doble clic.

SheetBeforeRightClick

Ocurre al hacer clic con el botón secundario del ratón en una hoja de cálculo, antes de la acción predeterminada.

SheetCalculate

Ocurre cuando se recalcula toda la hoja de cálculo o después de actualizar un gráfico al modificar sus datos.

SheetChange

Ocurre cuando las celdas de una hoja de cálculo se modifican por el usuario o por un vínculo externo.

SheetDeactivate

Ocurre al desactivar una hoja de cálculo.

SheetFollowHyperlink

Ocurre cuando el usuario hace clic en un hipervínculo en Microsoft Excel.

SheetPivotTableAfterValueChange...

Eventos del objeto Workbook

Activate

Ocurre cuando se activa el libro.

AddinInstall

Ocurre cuando el libro se instala en forma de una macro complementaria.

AddinUninstall

Ocurre cuando el libro se desinstala en forma de una macro complementaria.

AfterSave

Ocurre después de guardar el libro.

AfterXMLExport

Ocurre después de exportar un archivo XML.

AfterXMLImport

Ocurre después de importar un archivo XML.

BeforeClose

Ocurre antes de cerrar el libro; si el libro fue modificado, este evento se produce antes de invitar al usuario a guardar los cambios.

BeforePrint

Ocurre antes de imprimir el libro (o cualquiera de sus partes).

BeforeSave

Ocurre antes de grabar el libro.

BeforeXMLExport

Ocurre antes de exportar un archivo XML.

BeforeXMLImport

Ocurre antes de importar un archivo XML.

Deactivate

Ocurre al desactivar un gráfico, una hoja de cálculo o un libro.

NewChart

Ocurre al crear un nuevo gráfico en el libro.

NewSheet

Ocurre cuando se crea una nueva hoja en el libro.

Open

Ocurre cuando se abre el libro.

PivotTableOpenConnection

Ocurre al abrir la conexión de un informe de tabla dinámica con su fuente de datos.

PivotTableCloseConnection

Ocurre al cerrar la conexión de un informe de tabla dinámica con su fuente de datos.

RowsetComplete

Este evento se desencadena cuando el usuario extrae el juego de grabación de una tabla dinámica OLAP.

SheetActivate

Ocurre cuando se activa una hoja.

SheetBeforeDoubleClick...

Eventos del objeto Worksheet

Activate

Ocurre cuando se activa un libro, una hoja de cálculo, una hoja de gráfico o un gráfico incrustado.

BeforeDelete

Ocurre antes de eliminar una hoja.

BeforeDoubleClick

Ocurre al hacer doble clic en una hoja de cálculo o un gráfico incrustado, antes de la acción predeterminada para el doble clic.

BeforeRightClick

Ocurre al hacer clic con el botón secundario del ratón en una hoja de cálculo o un gráfico incrustado, antes de la acción predeterminada.

Calculate

Ocurre al recalcular la hoja de cálculo.

Change

Ocurre cuando algunas celdas de la hoja de cálculo están modificadas por el usuario o por un vínculo externo.

Deactivate

Ocurre al desactivar el gráfico, la hoja de cálculo o el libro.

FollowHyperlink

Ocurre al hacer clic en un hipervínculo de una hoja de cálculo.

PivotTableAfterValueChange

Ocurre cuando se modifica o recalcula una celda o rango de celdas de una tabla dinámica.

PivotTableBeforeAllocateChanges

Ocurre al actualizar cambios en una tabla dinámica

PivotTableBeforeCommitChanges

Ocurre antes de validar cambios en una tabla dinámica vinculados a un origen de datos OLAP.

PivotTableBeforeDiscardChanges

Ocurre antes de descartar cambios en una tabla dinámica.

PivotTableChangeSync

Ocurre después de modificar una tabla dinámica.

PivotTableUpdate

Ocurre después...

Eventos del objeto Chart

Activate

Ocurre cuando se activa una hoja de gráfico o un gráfico incrustado.

BeforeDoubleClick

Ocurre al hacer doble clic en un gráfico incrustado o una hoja de gráfico, antes de la acción predeterminada para el doble clic.

BeforeRightClick

Ocurre al hacer clic con el botón secundario en un gráfico incrustado o una hoja de gráfico, antes de la acción predeterminada correspondiente.

Calculate

Ocurre después de que el gráfico se actualice con datos nuevos o modificados.

Deactivate

Ocurre cuando se desactiva el gráfico, la hoja de cálculo o el libro.

MouseDown

Ocurre al presionar el botón izquierdo o derecho del ratón cuando el puntero está sobre un gráfico.

MouseMove

Ocurre al cambiar la posición del puntero del ratón sobre un gráfico.

MouseUp

Ocurre al soltar el botón izquierdo o derecho del ratón cuando el puntero está sobre un gráfico.

Resize

Se produce al cambiar el tamaño del gráfico.

Select

Se produce al seleccionar un elemento del gráfico.

SeriesChange

Ocurre cuando el usuario modifica el valor de un punto de datos del gráfico.