Tengo una función para realizar cálculos en Microsoft Excel pero no me actualiza los datos.

He creado una función para realizar una serie de cálculos, hasta aquí no hay problemas. El problema radica en que cuando cambio los datos de origen la función no se actualiza y me muestra los datos antiguos. Tengo otras funciones que se actualizan perfectamente, y la diferencia entre unas y otras (aparte del código) es que las que funcionan cogen los datos de la misma hoja y las que no se actualizan cogen los datos de otra hoja, ¿tienes alguna idea de cual puede ser el problema?
Respuesta
1
Realmente es muy raro, no debería pasarte eso, verifica si tienes activa la opción "Calcular manualmente" y también verifica en vínculos si no está como manual si es que las hojas están en otros libros.
El problema no era con la opción calcular manualmente, si no que faltaba al principio de la función el método volatile, de todas formas muchas gracias por tu interés.

1 respuesta más de otro experto

Respuesta
1
Dos cosas:
1.- Asegurate de colocar la función en un módulo y haz referencia siempre a sus respectivos nombre de hoja y celda/rango
2.- Coloca, siempre, al principio de la función la instrucción:
Application. Volatile
aclarando qué entendí mal o qué faltó.
Hola Fernando, al parecer es exactamente Application.Volatile
Lo que me hacía falta colocar para que todo funcione. He consultado dentro de la ayuda de VBA y se más o menos para que sirve este método, pero lo que no entiendo es porque en otras funciones personalizadas que tengo se actualizaban sin poner este método. Si puedes aclararme la duda genial, si no no importa, de todas formas muchas gracias por tu respuesta.
Resulta difícil explicarlo en este espacio, pero puedo decirte -conceptualmente- que dependerá de que funciones u operaciones realicen cada una de tus UDF. Si las comparas, notarás que algunas necesariamente se actualizan "internamente" por su vinculación a celdas. Si, en cambio, usaran en su cálculo, *fórmulas* de las hojas -que a su vez deben recalcularse antes de alimentar tu función- es probable que la función mantenga los valores hasta que se fuerce un recalculo general.
En definitiva, ante la duda, colocar tal instrucción al inicio -como norma- resuelve el problema.
Me alegro de que esto te haya servido. (Recuerda finalizar la pregunta).
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas