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 add­in. 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.

Lección 7

tombrad@webhost.cl
http://fly.to/arica