Sei sulla pagina 1di 3

Detectar el cambio en una celda de Excel

inShar e

Podemos detectar el cambio en una celda de Excel a travs del evento Worksheet_Change en VBA donde podremos indicar el cdigo que se ejecutar al momento de descubrir una modificacin en alguna celda o rango de nuestra hoja.

Accediendo el evento Worksheet_Change


Existen dos mtodos para acceder a este evento. 1) Hacer clic derecho en el nombre de la hoja de Excel y seleccionar la opcin Ver cdigo.

2) Abrir el Editor de VBA y dentro del Explorador de proyectos hacer doble clic sobre el nombre de la hoja.

Posteriormente debemos seleccionar de las listas desplegables las opciones Worksheet (en la primera lista) y la opcin Change (en la segunda lista).

El Editor de VBA desplegar el cdigo respectivo para el evento Worksheet_Change y podremos escribir nuestro cdigo dentro de la subrutina provista.

El argumento Target del evento Worksheet_Change


Nuestro evento tiene definido un argumento llamado Target el cual contendr la celda que ha sido modificada. Para mostrar el valor de dicho argumento podemos utilizar siguiente cdigo:

Cada vez que realices una modificacin a una celda y pulses la tecla Entrar se mostrar el mensaje siguiente:

Cmo detectar el cambio en una celda de Excel


A continuacin haremos dos ejemplos donde aprenderemos cmo detectar el cambio en una celda de Excel utilizando el evento Worksheet_Change en VBA. El primer ejemplo me permitir proteger el contenido de la celda A1 de manera que si detecto cualquier cambio en la celda volver a colocar el nmero 3.141592654 el cual es su valor original.

De esta manera la celda A1 siempre tendr el valor numrico 3.141592654 sin importar las veces que intente modificar su valor. La clave en este cdigo es comparar la propiedad Address para saber si efectivamente se trata de la celda A1 y en caso de ser verdadero asignar el valor a Target. El segundo ejemplo que mostrar nos ayuda a detectar el cambio en un rango de celdas. Supongamos que en el rango A1:A10 quiero monitorear el valor introducido en cada celda y colocar el nmero de la vocal que se ha introducido. De esta manera, si se introduce la letra A se remplazar por el valor 1. Si se introduce la letra E se remplazar por el valor 2 y as sucesivamente. El cdigo para lograr este comportamiento en la hoja es el siguiente:

La funcin Intersect nos ayuda a saber si existe alguna coincidencia entre el valor de Target y el rango A1:A10 en cuyo caso se evaluar el valor de Target para saber si es una vocal y entonces hacer el remplazo necesario. De manera que puedas comprobar por tu propia cuenta los ejemplos que he mostrado en esta ocasin, puedes descargar el libro de trabajo y hacer pruebas con el cdigo. Recuerda que el evento Woorksheet_Change en VBA es de gran utilidad cuando necesitamos detectar el cambio en una celda de Excel de manera que podamos tomar las acciones adecuadas. Artculos relacionados Introduccin a las macros en Excel Eventos en VBA

Potrebbero piacerti anche