You are on page 1of 4

19/3/2014 Detectar el cambio en una celda de Excel

http://exceltotal.com/detectar-el-cambio-en-una-celda-de-excel/ 1/7
Detectar el cambio en
una celda de Excel
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
Bscanos en Facebook
Excel Total
A 22 153 personas les gusta Excel Total.
Plug-in social de Facebook
Me gusta
INICIO FUNCIONES ACERCA
19/3/2014 Detectar el cambio en una celda de Excel
http://exceltotal.com/detectar-el-cambio-en-una-celda-de-excel/ 2/7
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:
Sigue a Excel Total
19/3/2014 Detectar el cambio en una celda de Excel
http://exceltotal.com/detectar-el-cambio-en-una-celda-de-excel/ 3/7
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
19/3/2014 Detectar el cambio en una celda de Excel
http://exceltotal.com/detectar-el-cambio-en-una-celda-de-excel/ 4/7
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
Publicado el 11 de octubre del 2012 por Moiss Ortz

You might also like