minha empresa faz uso extensivo de um provedor de dados usando um plug-in VBA (de código fechado). Em princípio, toda consulta segue uma certa estrutura:
-
Preencha uma célula com uma fórmula, em que os argumentos da fórmula especificam a consulta
-
o intervalo dessa fórmula é estendido (não uma fórmula arrray!) e as células abaixo / direita são preenchidas com dados
Para que isso funcione, no entanto, o usuário precisa ter um programa de terminal instalado na máquina, bem como um plug-in com referenciado no VBA / Excel.
Meu problema
Essas Excelsheets são usadas e estendidas por vários usuários, e nem todas elas têm acesso ao provedor de dados. Enquanto eles podem abrir a folha, ela será recalculada e os dados serão eliminados. No entanto, o recálculo frequente é necessário. Eu gostaria que todos os usuários pudessem usar as planilhas, sem executar um conjunto muito específico de fórmulas.
Tentativas
-
remova a referência nos computadores em que eu não tenho acesso ao terminal. Isso gera um erro NAME na célula que contém a consulta (aceitável), mas essa consulta substitui partes dos dados (não aceitável)
-
Se você permitir que o programa seja atualizado, todos os dados desaparecerão após uma consulta com falha
-
Substitua todas as fórmulas pelo resultado em texto puro nas respectivas células (pressione um botão e faça um loop sobre cada célula ...). Obviamente, destrói todos os recursos de atualização que as querys oferecem para todos os usuários subsequentes, o que é muito ruim também.
-
Uma ideia teórica, e não sei como implementá-la: Substitua as funções oferecidas pelo plug-in por algo que será chamado primeiro (e retransmitirá a consulta para a função original, se isso estiver disponível ) ou em vez da função original (implantando apenas a solução em máquinas não terminais), que apenas retorna o valor original.
Mais especificamente, se minha função de consulta for usada assim:
=GETALLDATA(Startdate, Enddate, Stockticker, etc)
Eu gostaria de trocar de forma transparente a função por trás da chamada.
Você vê alguma esperança ou eu estou perdido?
Agradeço sua ajuda.
PS: Claro que estou falando sobre a Bloomberg ...
Alguns pontos adicionais para esclarecer as questões levantadas por Frank:
-
A fórmula nas folhas não pode ser alterada. Este é um software de missão crítica, e é muito complexo para qualquer pessoa sã tentar tocá-lo.
-
Somente excel e VBA podem ser usados (qual é o motivo do ponto anterior ...)
-
Seria suficiente impedir a execução dessas poucas fórmulas / funções específicas em uma máquina específica para todas as planilhas do Excel
-
Isso parece cada vez mais um problema para stackoverflow; -)