Cara, posso estar falando besteira, mas...
O evento Change tem o parâmetro Target:
Private Sub Worksheet_Change(ByVal Target As Range)
Enquanto o evento Calculate não tem parâmetros:
Worksheet_Calculate()
Não achei uma explicação para esta variação, mas arrisco dizer que o evento Calculate, por não ter parâmetros, sempre sem aplica à planilha toda (se estivr errado, alguém vai dizer - eu acho).
Como não sei bem o que vc quer, eu fiz um teste com uma função UDF:
Function EVENTO(formula As Variant) As Variant
Call sua_macro
Evento = formula
End Function
Como pode ver, a intenção é jogar a fórmula que vc já utiliza dentro da função EVENTO, e ela vai chamar a tua macro. Com isso, somente as células que tenham essa função vão chamar a macro.
Eu fiz um teste básico, chamando esta macro:
Sub sua_macro()
MsgBox "oi"
End Sub
E deu certo.
Dependendo do que a tua macro vai fazer, pode funcionar.
Ah, sim, para usar a função, basta jogar a tua fómula dentro dela, ou seja, se vc tinha, por exemplo:
=ÍNDICE(A1:A10;CORRESP(D1;B1:B10;0))
Passará a ser:
=EVENTO(ÍNDICE(A1:A10;CORRESP(D1;B1:B10;0)))
Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.
Gilmar
Postado : 29/01/2015 4:35 pm