Regresar a la Pagina de Inicio

30 jul. 2010

detectar cambios realizados en una celda

Un lector del blog, al cual le agradezco su entrada, me realiza la siguiente consulta: si el usuario realiza algún cambio en una celda cualquiera de la hoja, el necesita saber en que fila de la planilla de cálculos se encuentra dicha celda, para seleccionarla completamente.
Con funciones resulta imposible alterar la estructura de una hoja, por ende seleccionar, eliminar, agregar, etc, filas, así que no nos queda otra opción que recurrir a las macros.
En realidad estamos ante una tarea que VBA ya tiene prevista e incorpora dentro de los eventos de cada hoja:
Change (Cambio). Nos vamos al editor de Visual Basic (Alt + F11) y desde el Explorador de proyectos hacemos doble click sobre el nodo de alguna Hoja, y seleccionamos segun muestra la siguiente imagen:

4 comentarios:

Anónimo dijo...

Me re sirvió tu ejemplo!!! GRACIAS!! Pero tengo un problemita, hice una Macro que copia y pega en otra hoja todo un rango de una fila (ejemplo: desde A12 hasta A112).
Entonces cuando uso la rutina que dejaste en el ejemplo, este toma como que cambió todo el Rango A12 - A112 !!
Yo lo que quería lograr era que me copie y pegue el cambio en otra hoja donde llevo el registro de los cambios realizados.
Pero la rutina "change" hace que seleccione TODO el rango...
Como puedo hacer para que verifique fila por fila si algo cambió y entonces me copie y pegue esa fila en otra hoja para llevar un registro?
Estoy haciendo un control de stock.
Muchas Gracias

Damian Omar Silva dijo...

Hola estimado. Vos sabes que no entiendo muy bien tu consulta. Hiciste una macro que pega en otra hoja todo un rango... y mas abajo me pones "pero la rutina change hace que se seleccione TODO el rango". No comprendo.
Explicame un poco mas detalladamente el tema y veo como puedo ayudarte.

Francisco Javier Hoyos Ortiz dijo...

buen dia

hola mi pregunta es si en determinada celda tengo la siguiente formula =SI(I30=F3;"TIENE MÁS PAGOS EN EL MES";"") me arroje un mensaje igual en el momento que se cumpla esa condición, que lo arroje automáticamente sin pararse en la celda. por favor si me puedes colaborar. gracias

Damian Omar Silva dijo...

Podrías colocar la condicion en el evento Worksheet_SelectionChange:
if I30=F3 then
msgbox "tiene mas pagos en el mes"
end if
Debería funcionar sin problemas. El evento "selection change" se dispara cada vez que se cambia la selección de un rango/celda; ahí lo aprovecharíamos para analizar si los valores son iguales... de ser así, un mensaje alerta. ¿Te sirve?

Publicar un comentario

Regresar a la Pagina de Inicio

ENTRADAS MAS RECIENTES (ULTIMAS 10)


las + vistas

10 ULTIMOS COMENTARIOS DE MIS LECTORES

Free counters!
blog de periodismo




GRAFICA RIO BRAVO
Serigrafia-Offset
Rosario - Santa Fe - Argentina
TE: 0341 4664028