Página 1 de 1

Evento disparado por um calculo em uma celula

Enviado: 16 Fev 2018 às 17:41
por japisdn
Ola,
Estou tentando capturar um evento que dispara após uma celula for alterada.
Tentei evento Change() porem não dispara quando uma celula for alterada. Esta celula provém de link DDE.
Alguem sabe qual evento deveria usar? Ou se tem alguma forma diferente de disparar um procedimento quando esta celular alterar para um valor X?

obrigado
Denis

Re: Evento disparado por um calculo em uma celula

Enviado: 16 Fev 2018 às 18:09
por osvaldomp
Experimente o Calculate :)

Se não funcionar coloque em uma célula vazia uma fórmula que faça referência à célula que recebe o dado do link. Por exemplo, se a célula receptora for sempre A1, coloque em qualquer célula vazia =A1.

Evento disparado por um calculo em uma celula

Enviado: 16 Fev 2018 às 18:23
por japisdn
Oi Osvaldo, essa calculate() é aquela que dispara para qualquer situação de calculo certo?
a minha planilha tem mais de 10 abas sendo 3 que monitora constantemente as DDE.
se cada celula for calculada, será disparado esse evento x mil vezes?
será que vai travar o excel?

*só pra ter uma ideia, esta planilha consome 40 a 60% do CPU da maquina ... :lol:

obrigado pela ajuda

Re: Evento disparado por um calculo em uma celula

Enviado: 16 Fev 2018 às 21:10
por osvaldomp
Eu sugiro que você faça os testes.

Re: Evento disparado por um calculo em uma celula

Enviado: 19 Fev 2018 às 17:34
por japisdn
ola,

Dentro do metodo calculate() tem como saber qual celula foi recalculada ou é disparada para qualquer celula do worksheet?
Teria que ler um range( a1:a1000) pra saber se teve alguma alteração para cada calculate(). Neste caso é somente via FOR ou While?

obrigado
Denis

Evento disparado por um calculo em uma celula

Enviado: 20 Fev 2018 às 19:01
por mprudencio
Dentro do envento calculate vc pode executar se apenas uma celula for alterada

If target.address = "$A$1 then

Seu codigo
End IF

Isso vai fazer que o codigo seja executado somente se a planilha tiver a celula A1 alterada.