Detectar El Cambio en Una Celda de Excel
Transcript of Detectar El Cambio en Una Celda de Excel
-
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 enuna 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 seejecutar al momento de descubrir una modificacin en alguna celda o rangode 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 opcinVer 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 opcionesWorksheet (en la primera lista) y la opcin Change (en la segunda lista).
El Editor de VBA desplegar el cdigo respectivo para el eventoWorksheet_Change y podremos escribir nuestro cdigo dentro de la subrutinaprovista.
El argumento Target del eventoWorksheet_Change
Nuestro evento tiene definido un argumento llamado Target el cual contendr lacelda que ha sido modificada. Para mostrar el valor de dicho argumentopodemos 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 semostrar 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 enVBA. El primer ejemplo me permitir proteger el contenido de la celda A1 demanera que si detecto cualquier cambio en la celda volver a colocar elnmero 3.141592654 el cual es su valor original.
De esta manera la celda A1 siempre tendr el valor numrico 3.141592654sin importar las veces que intente modificar su valor. La clave en este cdigoes comparar la propiedad Address para saber si efectivamente se trata de lacelda 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 elvalor introducido en cada celda y colocar el nmero de la vocal que se haintroducido. De esta manera, si se introduce la letra A se remplazar por elvalor 1. Si se introduce la letra E se remplazar por el valor 2 y assucesivamente. El cdigo para lograr este comportamiento en la hoja es elsiguiente:
La funcin Intersect nos ayuda a saber si existe alguna coincidencia entre elvalor de Target y el rango A1:A10 en cuyo caso se evaluar el valor de Targetpara saber si es una vocal y entonces hacer el remplazo necesario.
De manera que puedas comprobar por tu propia cuenta los ejemplos que hemostrado en esta ocasin, puedes descargar el libro de trabajo y hacerpruebas con el cdigo. Recuerda que el evento Woorksheet_Change en VBAes 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 ExcelEventos en VBA
Publicado el 11 de octubre del 2012 por Moiss Ortz