Problema con SheetChange. No se actualiza con referencia a otro libro

13/10/2006 - 10:32 por Carlos | Informe spam
Hola a todos,

Tengo dos libros: Libro1 y libro2, con una serie de valores. Cuando
modifico algo en el libro1, se guarda la ultima fecha en que se
modificó dicho libro. Eso lo hago con el evento SheetChange.
Hasta ahí todo normal. El problema viene porque en la hoja2 del
libro1, en la H82, se carga el valor que haya en la celda B13 del
libro2.

Que es lo que ocurre?? Pues que se me actualiza el valor del libro1
H82, pero no se dispara el evento SheetChange. He estado leyendo en el
foro y lo he intentado con el evento Calculate, pero tampoco he
encontrado la manera de que funcione.

Si no ando mal encaminado, tengo que capturar el valor de la celda H82
del libro1 antes de que me cargue el valor del Libro2, y comparar
despues con el nuevo valor a ver si ha cambiado.

espero que a alguien me pueda ayudar.
Saludos
Carlos
 

Leer las respuestas

#1 Héctor Miguel
13/10/2006 - 10:46 | Informe spam
hola, Carlos !

... dos libros: Libro1 y libro2... Cuando modifico algo en el libro1, se guarda la ultima fecha en que se modifico dicho libro.
... lo hago con el evento SheetChange. Hasta ahi todo normal. El problema viene porque en la hoja2 del libro1
en la H82, se carga el valor que haya en la celda B13 del libro2.
Que es lo que ocurre?? Pues que se me actualiza el valor del libro1 H82, pero no se dispara el evento SheetChange.
He estado leyendo en el foro y lo he intentado con el evento Calculate, pero tampoco he encontrado la manera de que funcione.
Si no ando mal encaminado, tengo que capturar el valor de la celda H82 del libro1 antes de que me cargue el valor del Libro2
y comparar despues con el nuevo valor a ver si ha cambiado.



prueba usando el evento '_calculate' de la hoja2 del libro1 y una variable estatica que este 'tomando' los cambios
=> click-derecho en la pestaña de 'la hoja' => ver codigo... => copia las siguientes lineas
Private Sub Worksheet_Calculate()
Static Dato_Anterior
On Error Resume Next
If Range("h82") = Dato_Anterior Then Exit Sub
MsgBox "H82 ha cambiado de " & Dato_Anterior & " a " & Range("h82")
Dato_Anterior = Range("h82")
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares