lunes, 18 de mayo de 2015

El evento SelectionChange

Archivo de Excel utilizado: SelectionChange.xlsm

Vamos a crear un caso práctico sencillo que nos permitirá comprender cómo funciona el evento SelectionChange. Primero veamos lo que es un Evento.

Programación por Eventos

En muchos de los lenguajes de programación modernos existe la denominada programación por eventos que permite lanzar procedimientos cuando se detecta que ha sucedido un evento. Los eventos pueden ser de muchos tipos y dependen del lenguaje utilizado. Por ejemplo, un evento puede ser pulsar una vez el ratón, o pulsar dos veces sobre el ratón, o pulsar sobre el botón derecho, o escribir en una celda, o actualizar la hoja de cálculo, o ir a otra hoja. En otros lenguajes, un evento podría ser pasar el cursor del ratón sobre un banner que hace que la publicidad que contiene se agrande o que comience un vídeo o un sonido.

En Excel se están aumentando los eventos disponibles en cada versión, en especial los relacionados con Tablas dinámicas. En Excel 2010 son los siguientes.


El evento Worksheet.SelectionChange

El evento Worksheet.SelectionChange nos permite lanzar un procedimiento cada vez que seleccionamos un rango de celdas diferente.

Caso práctico

El caso práctico que planteamos consiste en proporcionar en una celda la suma de los valores numéricos que contengan el rango que seleccionemos. De tal forma que al ir cambiando la selección inmediatamente y sin lanzan ninguna macro por nuestra parte en la celda D4 (de color amarillo) nos de continuamente el valor de la suma de los elementos seleccionados.



La programación del evento es la siguiente que se debe colocar en la zona de código correspondiente a la Hoja1 que es donde están los elementos que deseamos sumar.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim celda As Range
Dim suma As Double
For Each celda In Target
  If IsNumeric(celda) Then
    suma = suma + celda.Value
  End If
Next
[D4] = suma
End Sub

No hay comentarios:

Publicar un comentario