Evento Calculate

13/01/2007 - 01:49 por Diego | Informe spam
Grupo.
Necesito correr una macro en 2 situaciones similares, una es luego que se
actualiza data en una hoja de cálculo. Esta data se actualiza por vínculo a
una consulta externa.
Otra situación es que necesito que se corra una macro luego que se actualiza
un gráfico dinámico por selección de uno de los filtros.
La lógica me indica que para ambos casos debo emplear el evento Calculate,
pero aparentemente no lo coge, ya que no se ejecuta la macro.
 

Leer las respuestas

#1 Héctor Miguel
13/01/2007 - 08:01 | Informe spam
hola, Diego !

Necesito correr una macro en 2 situaciones similares
una es luego que se actualiza data en una hoja de calculo... por vinculo a una consulta externa.
Otra... es que necesito que se corra una macro luego que se actualiza un grafico dinamico por seleccion de uno de los filtros.
La logica me indica que para ambos casos debo emplear el evento Calculate, pero aparentemente no lo coge, ya que no se ejecuta la macro.



1) si el evento '_calculate' NO se dispara... [seguramente] es porque no ocurre un [re-]calculo en tu modelo/hoja/libro/... -?-

2) para el caso del grafico dinamico... prueba con el evento '_change' [de esa hoja] especificando las celdas-filtro que se actualizan

3) para el caso de la consulta externa... [creo que] va a ser necesario que proporciones algunos detalles adicionales [como]...
si la actualizacion de la consulta la haces...
a) por codigo...
agrega una instruccion al final que 'deposite' cualquier dato [fecha/hora/...] en [alg]una celda
y usas el evento '_change' cuando 'esa' celda sea modificada [por el codigo, obviamente] ;)
b) por intercambio dinamico de datos [DDE/OLE]...
1) usa el evento '_calculate' de 'esa' hoja y 'rastrear/buscar/monitorear/...' cambios en 'esa' celda
2) usa el metodo 'SetLinkOnData' para lo cual necesitaras proporcionar el vinculo [exacto] que se actualiza
[puedes consultar la ayuda en linea de vba u 'ofrecer' mayores detalles] ;)
3) si los datos 'actualizados' son [solo] textos, prueba con Application.OnData = "Esta_Macro"
OJO: estos metodos requieren que se trate de vinculos DDE/OLE *reales/efectivos/...* -?-
c) desde la interfase excel/usuario [menus o barras]...
1) quien esta 'en control' de las acciones... -> ES EL USUARIO [hasta que excel pueda 'encargarse de lo suyo']
2) NO existe codigo que pueda 'ejecutarse'... -> hasta que el usuario 'le devuelva' el control a la aplicacion
3) algunos 'eventos' por cambios no se disparan [segun versiones] por actualizaciones/refrescos/... de canales consultas externas

4) otras posibles alternativas...
a) prueba estableciendo parametros en tu sentencia de consulta y despues las vinculas a celdas donde SQL pueda tomarlos
b) comentar +/- exactamente lo que significa: "...por vinculo a una consulta externa" y como se hace la actualizacion -?-

saludos,
hector.

Preguntas similares