Eventos en Excel
Por defecto la programación de los eventos está habilitada, pero los eventos se pueden habilitar o deshabilitar de antemano con
Application.EnableEvents = False 'deshabilita programación de eventos ActiveWorkbook.Save ' graba la hoja Application.EnableEvents = True ' habilita la programación de eventos
Eventos en una hoja Excel
En una hoja se pueden programar los siguientes eventos
Evento Descripción Activate Ocure cuando se activa la hoja. Se usa en lugar de la propiedad OnSheetActivate BeforeDoubleClick Ocurre cuando el usuario hace doble click en una celda. Se usa en lugar de la propiedad OnDoubleClick BeforeRightClick Ocurre cuando el usuario hace click derecho sobre una celda Calculate Ocurre cuando el usuario calcula la hoja. se usa en lugar de la propiedad OnCalculate. Change Ocurre cuando el usuario cambia la fórmula de una celda. Se usa en lugar de la propiedad OnEntry. Deactivate Ocurre cuando la hoja está activa y el usuario activa otra hoja. No ocurre cuando se cambia el foco de una ventana a otra en la misma hoja. Se usa en lugar de la propiedad OnSheetDeactivate. SelectionChange Ocurre cuando el usuario selecciona la celda de una hoja Ejemplos
Para ajustar automáticamente el tamaño de las columnas A a la F cada vez que la hoja es recalculada.
Private Sub Worksheet_Calculate() Columns("A:F").AutoFit End Sub
Eventos de gráficos
Evento Descripción Activate Cuando el usuario activa la hoja de gráficos (no funciona con gráficos incrustados). Se usa en lugar de la propiedad OnSheetActivate. BeforeDoubleClick Cuando el usuario hace doble click en el gráfico. Se usa en lugar de la propiedad OnDoubleClick BeforeRightClick Cuando el usuario hace click derecho en el gráfico Calculate Cuando se dibuja un nuevo gráfico o cambia los datos Deactivate Cuando se activa una hoja distinta. Se usa en lugar de la propiedad OnSheetDeactivate DragOver Cuando el usuario arrastra datos hacia el gráfico DragPlot Cuando el usuario arrastra un rango de celdas al gráfico MouseDown Cuando el usuario hace click mientras el puntero está dentro del gráfico MouseMove Cuando el usuario mueve el mouse por el gráfico. MouseUp Cuando el usuario suelta el botón del mouse mientras el puntero está dentro del gráfico Resize Cuando el usuario cambia el tamaño del gráfico Select Cuando el usuario selecciona un elemento del gráfico SeriesChange Cuando el usuario cambia el valor de un dato Ejemplo
Para cambiar el color del borde cuando el usuario cambia el valor de un punto
Private Sub Chart_SeriesChange(ByVal SeriesIndex As Long, _ ByVal PointIndex As Long) Set p = ActiveChart.SeriesCollection(SeriesIndex).Points(PointIndex) p.Border.ColorIndex = 3 End Sub
Eventos de libro (workbook)
Eventos Descripción Activate Cuando se activa un libro AddInInstall Cuando se instala el libro como un addin. Se usa en lugar del macro Auto_Add AddInUninstall Cuando se desinstala el libro como un add-in Se usa en lugar del macro Auto_Remove. BeforeClose Cuando se cierra el libro. Se usa en lugar del macro Auto_Close. BeforePrint Cuando se imprime el libro BeforeSave Cuando se graba el libro. Occurs before the workbook is saved. Se usa en lugar del macro OnSave Deactivate Cuando se activa un libro diferente de la actual. NewSheet Cuando el usuario crea un nuevo libro. Open Cuando el usuario abre el libro. Se usa en lugar del macro Auto_Open. SheetActivate Cuando el usuario activa un libro. Se usa en lugar del macro OnSheetActivate SheetBeforeDoubleClick Cuando se hace click en una celda. Se usa en lugar de la propiedad OnDoubleClick SheetBeforeRightClick Cuando el usuario hace click derecho en una celda SheetCalculate Cuando se recalcula un libro. Se usa en lugar de la propiedad OnCalculate. SheetChange Cuando el usuario cambia una fórmula. Se usa en lugar de la propiedad OnEntry SheetDeactivate Cuando el usuario activa un libro diferente. Se usa en lugar de la propiedad OnSheetDeactivate SheetSelectionChange Cuando el usuario cambia la selección en un libro WindowActivate Cuando el usuario desplaza el foco a cualquier otra window. Se usa en lugar de la propiedad OnWindow WindowDeactivate Cuando el usuario saca el foco de una ventana. Se usa en lugar de la propiedad OnWindow WindowResize Cuando el usuario abre o cambia de tamaño, maximiza o minimiza una ventana Ejemplo
Para maximizar la aplicación cuando una hoja se abre
Sub Workbook_Open() Application.WindowState = xlMaximized End Sub
Eventos de Aplicación
Evento Descripción NewWorkbook Cuando se crea un nuevo libro SheetActivate Occurs when the user activates a sheet in an open workbook. Use this event instead of the OnSheetActivate property. SheetBeforeDoubleClick Occurs when the user double-clicks a worksheet cell in an open workbook (not used with chart sheets). Use this event instead of the OnDoubleClick property. SheetBeforeRightClick Occurs when the user right-clicks a worksheet cell in an open workbook (not used with chart sheets). SheetCalculate Occurs after the user recalculates a worksheet in an open workbook (not used with chart sheets). Use this event instead of the OnCalculate property. SheetChange Occurs when the user changes a cell formula in an open workbook (not used with chart sheets). Use this event instead of the OnEntry property. SheetDeactivate Occurs when the user deactivates a sheet in an open workbook. Use this event instead of the OnSheetDeactivate property. SheetSelectionChange Occurs when the user changes the selection on a sheet in an open workbook. WindowActivate Occurs when the user shifts the focus to an open window. Use this event instead of the OnWindow property. WindowDeactivate Occurs when the user shifts the focus away from an open window. Use this event instead of the OnWindow property. WindowResize Occurs when the user resizes an open window. WorkbookActivate Occurs when the user shifts the focus to an open workbook. WorkbookAddInInstall Occurs when the user installs a workbook as an add-in. WorkbookAddInUninstall Occurs when the user uninstalls a workbook as an add-in. WorkbookBeforeClose Occurs before an open workbook is closed. WorkbookBeforePrint Occurs before an open workbook is printed. WorkbookBeforeSave Occurs before an open workbook is saved. WorkbookDeactivate Occurs when the user shifts the focus away from an open workbook. WorkbookNewSheet Occurs when the user adds a new sheet to an open workbook. WorkbookOpen Occurs when the user opens a workbook.