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.).
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.
Resultado en Excel:
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
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.