Então, você está construindo uma planilha que exige que o usuário insira um código postal, cidade e estado … Como você constrói uma planilha mais inteligente que preenche automaticamente a cidade e o estado depois que o usuário insere apenas o código postal?
Estive olhando alguns tutoriais básicos que os desenvolvedores da web estão usando com XMLHttpRequest, como este, e fui inspirado a recriar a mesma funcionalidade deste excelente tutorial XMLHttpRequest no Excel (role para baixo no link para uma demonstração).
Sucesso! Eu montei um rápido filme em flash para demonstrar como digitar um zip e retornar automaticamente a cidade e o estado no Excel.
E aqui está o download da planilha para começar (não há muito código).
Como funciona
1. Você precisa de um banco de dados que contenha as informações do CEP / estado / cidade. Pegue isso aqui (eu usei MYSQL como demonstrado).
2. Retorne a cidade e o estado com base em uma consulta de CEP do banco de dados, usei PHP para retornar o texto.
3. De volta ao Excel: Quando o campo ZipCode muda, o evento Worksheet_Change é acionado, enviando a solicitação via WinHTTP para a página PHP, que retorna a Cidade e Estado da Solicitação de volta ao Excel.
4. Eu uso a função Split () para analisar a string e gravar os resultados na planilha.
Notas
Por que não retornar XML?
É apenas uma sequência de duas palavras, e o texto é fácil de lidar quando há apenas duas palavras. XML pode ter sido mais atraente, no entanto, porque eu poderia simplesmente ter mapeado os dois campos de resultado para células e chamado um personalizado URL de importação: cada vez.
Por que não se conectar diretamente ao banco de dados?
Sim, isso é possível, mas prefiro criar um “serviço”, desta forma qualquer aplicativo que eu fizer, em qualquer plataforma, pode usá-lo.
Por que não apenas importar os Zips para o Excel e fazer uma pesquisa?
Possível, no entanto, se várias pastas de trabalho usarem a tabela, será necessário fazer uma alteração em todas elas.
Os Zips no exemplo podem estar desatualizados.
Testado apenas em XL2003.