Estou procurando uma maneira de referenciar um campo em outra planilha do Excel, MAS eu preciso sobrescrever o campo referenciado no caso de uma entrada ser feita (compare: Um link em um sistema de arquivos. Você edita a posição A mas a posição B muda também. A posição B é a origem dos dados, a posição A é a interface do usuário).
Eu tenho duas planilhas, uma contendo os dados, uma fazendo a exibição para o usuário. O usuário muda as coisas na folha de exibição, eu quero que a folha de dados seja alterada automaticamente e a folha de exibição não seja afetada.
Datails:
- Eu tenho uma enorme planilha do Excel que deve sincronizar seu conteúdo com um banco de dados.
- É impraticável escrever o arquivo inteiro como um programa em uma linguagem de programação adequada.
- Eu posso ler a tabela SQL facilmente e planejo usar algo parecido com o MySQL para o Excel para fazer a atualização da tabela.
- Isso precisa de todas as informações no lugar certo.
Restrições:
- Um script de macro / VBA / qualquer que seja o melhor, desde que seja executado dentro do Excel
- A solução pode ser, mas não precisa ser instantânea. Ter que clicar em um botão ou similar é bom.
- Eu tenho milhares de campos, então ter uma macro para cada um deles é impraticável, a solução deve ser generalizável.
- Eu posso duplicar a função de referência original em um campo oculto em um local predeterminado (como 50 colunas à direita), mas preferiria não fazê-lo.
- Tenho algum orçamento, por isso um plug-in pago ou semelhante pode ser viável, mas não a solução preferida e nada muito caro.
Minha configuração atual
No meu banco de dados eu tenho um conjunto de entradas, elas são carregadas na planilha 'Data'.
Na minha planilha, eu tenho um campo que contém uma fórmula como:
=Data!A5
Em alguns casos, essa fórmula também contém hlookup
/ vlookup
.
Agora eu tenho a exibição dos dados da tabela na minha planilha de exibição, mas como eu escrevo de volta? Gostaria de redirecionar toda a escrita do meu campo de exibição para a posição dos dados.
Exemplo:
- Antes:
- Dados da planilha, campo A5:
"Hello"
- Exibição de folhas, campo A1:
=Data!A5
(exibindo assim Hello
)
- Ação: o usuário insere "Mundo" na Exibição de folhas, campo A1
- AQUI NÃO SEI O QUE FAZER
- Depois:
- Dados da planilha, campo A5:
"World"
- Exibição de folhas, campo A1:
=Data!A5
(exibindo assim World
)