Como usar target en el evento change de la hoja

dante/elsa /macrodos

¿No tengo mucho conocimiento de como usar target en el evento change de la hoja prodriar dame unos ejemplo y explicaciones?

Respuesta
2

H   o l a:

En la hoja tenemos varios eventos, estos eventos se activan cuando modificas una celda, seleccionas una celda, cuando le das doble click a una celda, etc. Cada hoja de tu libro tiene los mismos eventos, es decir, si quieres evaluar un evento en cierta hoja, tienes que poner el código en esa hoja; y as otras hojas no tendrá efecto.

Específicamente el evento Change, se activa cuando el valor de la celda es modificado. Importante, se refiere específicamente cuando el contenido de la celda cambia.

Si tienes un 3 y lo cambias a 2, se activa el evento Change

Si tienes un blanco y lo cambias a 2, se activa el evento Change

Si tienes una fórmula en la hoja1, en la celda A4, por ejemplo =Hoja2!A3+Hoja2! A4, significa que estás sumando el valor de la celda A3 y el valor de la celda A4 de la hoja2, si modificas el valor de A3 o el valor de A4 en la hoja, el evento change no se activa, lo que cambió fue el resultado de la fórmula, el valor de la celda sigue siendo =Hoja2!A3+Hoja2! A4.

Otras características que no activan el evento change, es cuando cambias el formato de la celda, el color, los bordes, el tipo de letra, etc.


Ahora, en el evento Change tienes el parámetro Target declarado como Range, eso significa que en Target tienes el objeto de todas las celdas que hayas modificado. Lo menciono como objeto, porque en Target, tienes toda la información de las celdas, puedes obtener el número de celdas modificadas, la fila de la celda modificada, la columna,, el valor que pusiste, ojo, un error que se comete, es querer obtener el valor anterior, en target tienes el nuevo valor, el valor anterior ya no existe; y no se puede recuperar de una manera práctica.


Entonces, empleas el evento Change cuando quieres que al modificar una celda de la hoja, en automático se ejecute una o varias operaciones. Pero como la hoja tienes miles de celdas, lo común, es delimitar cuales celdas o rango de celdas, es modificada, entonces se ejecutarán las operaciones.


Ahora ya sabes cuando se activa, cuando no y el contenido en Target.

Te anexo algunos ejemplos, para que veas como se emplean las delimitaciones:

Rectificar esta macro de mayúsculas

Crear Macro en otra hoja

Macro para mostrar Horas, minutos y segundos en diferentes celdas

Aplicar Change(ByVal Target As Range) con varios rangos

Como utilizo acumulador, para que los valores que escriba en el rango de la columna (C1:C5000), vaya aumentando en (B1:B5000)

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas