Comprobar cambios de valores en celdas vinculadas

29/04/2008 - 13:30 por Thebigmik | Informe spam
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("C10:K27")) Is Nothing Then
MsgBox ("AHORA SI HAY CAMBIOS INTERESANTES")
End If
End Sub

He descubierto que de esta forma se puede saber si han cambiado
valores en las celdas que me interesan, pero si esas celdas estan
vinculadas a otra celda no. Por ejemplo, si yo cambio el valor de
Hoja1_CeldaC10 funciona, pero si C10 recoge el valor de un vínculo de
otra celda por ejemplo Hoja2_CeldaD10 no funciona. ¿Hay alguna forma
de saber si se ha cambiado el valor en la celda? Muchisimas gracias.

Saludos

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/04/2008 - 14:58 | Informe spam
hola, (...) ???

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C10:K27")) Is Nothing Then
MsgBox ("AHORA SI HAY CAMBIOS INTERESANTES")
End If
End Sub
... de esta forma se puede saber si han cambiado valores en las celdas que me interesan
pero si esas celdas estan vinculadas a otra celda no...
Hay alguna forma de saber si se ha cambiado el valor en la celda?...



(hasta donde se) si los cambios ocurren por actualizacion via formulas (no por modificacion directa)
- necesitas utilizar el evento '_calculate' (pero)...
- este evento no "monitorea" cual/es celda/s se hubieran alterado en su resultado (para lo cual)
- podrias valerte de alguna variable estatica o alguna matriz (por cada celda que necesites monitorear)
- o verificar contra la variable estatica (p.e.) la suma de valores del rango a monitorear (si son numeros)
... o el largo conjunto de las celdas (si son textos), o algun otro "parametro" (segun el tipo de datos)
- tambien podrias rastrear cambios en las celdas "precedentes" (de las formulas en las celdas "interesantes")
solo considera que si las precedentes "vienen" de hojas/libros distintos de "las celdas"... (sera menos sencillo)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Thebigmik
30/04/2008 - 08:58 | Informe spam
On 29 abr, 14:58, "Héctor Miguel"
wrote:
hola, (...) ???

> Private Sub Worksheet_Change(ByVal Target As Range)
> If Not Intersect(Target, Range("C10:K27")) Is Nothing Then
> MsgBox ("AHORA SI HAY CAMBIOS INTERESANTES")
> End If
> End Sub
> ... de esta forma se puede saber si han cambiado valores en las celdas que me interesan
> pero si esas celdas estan vinculadas a otra celda no...
> Hay alguna forma de saber si se ha cambiado el valor en la celda?...

(hasta donde se) si los cambios ocurren por actualizacion via formulas (no por modificacion directa)
- necesitas utilizar el evento '_calculate' (pero)...
- este evento no "monitorea" cual/es celda/s se hubieran alterado en su resultado (para lo cual)
- podrias valerte de alguna variable estatica o alguna matriz (por cada celda que necesites monitorear)
- o verificar contra la variable estatica (p.e.) la suma de valores del rango a monitorear (si son numeros)
... o el largo conjunto de las celdas (si son textos), o algun otro "parametro" (segun el tipo de datos)
- tambien podrias rastrear cambios en las celdas "precedentes" (de las formulas en las celdas "interesantes")
solo considera que si las precedentes "vienen" de hojas/libros distintos de "las celdas"... (sera menos sencillo)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.



Lo que me imaginaba, gracias, por lo menos no he tenido que probar y
probar para darme cuenta que no se podia hacer, jeje. Hasta otra y
muchas gracias otra vez

Miguel Angel
Respuesta Responder a este mensaje
#3 Héctor Miguel
30/04/2008 - 14:12 | Informe spam
hola, Miguel Angel ! (te agradezco "el atrevimiento de exponer" tu nombre) :))

Lo que me imaginaba, gracias, por lo menos no he tenido que probar y probar para darme cuenta que no se podia hacer, jeje...



tanto como que "no se puede"... tampoco ;) me refiero a que en casos como este...
es mas sano conocer (de preferencia exactamente) los detalles precisos de la situacion, condiciones, eventualidades, etc.
como el que, como, cuando, donde, por que (si/no), que pasa si..., para que, el tipo de datos, ...
o bien para no desarrollar codigos exhaustivos en exceso, o bien para no afectar mas alla de lo indispensable/necesario/...

saludos,
hector.

__ la consulta original __
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C10:K27")) Is Nothing Then
MsgBox ("AHORA SI HAY CAMBIOS INTERESANTES")
End If
End Sub
... de esta forma se puede saber si han cambiado valores en las celdas que me interesan
pero si esas celdas estan vinculadas a otra celda no...
Hay alguna forma de saber si se ha cambiado el valor en la celda?...



(hasta donde se) si los cambios ocurren por actualizacion via formulas (no por modificacion directa)
- necesitas utilizar el evento '_calculate' (pero)...
- este evento no "monitorea" cual/es celda/s se hubieran alterado en su resultado (para lo cual)
- podrias valerte de alguna variable estatica o alguna matriz (por cada celda que necesites monitorear)
- o verificar contra la variable estatica (p.e.) la suma de valores del rango a monitorear (si son numeros)
... o el largo conjunto de las celdas (si son textos), o algun otro "parametro" (segun el tipo de datos)
- tambien podrias rastrear cambios en las celdas "precedentes" (de las formulas en las celdas "interesantes")
solo considera que si las precedentes "vienen" de hojas/libros distintos de "las celdas"... (sera menos sencillo)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida