Caros, Bom dia,
Em uma busca por informações na internet, baixei do site ViaCEP (ViaCEP - Webservice CEP e IBGE gratuito) um modelo de planilha onde consta uma fórmula para busca de informações de nome de Logradouro, Complemento, Bairro, Cidade e UF.
=SE($D$8<>"";FILTROXML(SERVIÇOWEB(CONCATENAR(“https://viacep.com.br/ws/";$D$8;"/xml/"));"//logradouro");"”)
=SE($D$8<>"";FILTROXML(SERVIÇOWEB(CONCATENAR(“https://viacep.com.br/ws/";$D$8;"/xml/"));"//complemento");"”)
=SE($D$8<>"";FILTROXML(SERVIÇOWEB(CONCATENAR(“https://viacep.com.br/ws/";$D$8;"/xml/"));"//bairro");"”)
=SE($D$8<>"";FILTROXML(SERVIÇOWEB(CONCATENAR(“https://viacep.com.br/ws/";$D$8;"/xml/"));"//localidade");"”)
=SE($D$8<>"";FILTROXML(SERVIÇOWEB(CONCATENAR(“https://viacep.com.br/ws/";$D$8;"/xml/"));"//uf");"”)
Eu tentei adequar uma macro com fórmula postada pelo mestre @schiavinatto, porém com certeza perdi algo, pois mesmo usando as funções em inglês e português, eu não obtive êxito.
Qual é minha necessidade: Executar, à partir da perda do foco no campo fmtCEP da caixa de diálogo dlgCadastro, a macro que irá buscar os dados do cep inserido, e preencher automaticamente nos campos seguintes (Logradouro, Complemento, Bairro, Cidade e UF). Se possível também fazer a pesquisa reversa (não é obrigatório), preenchendo-se o nome da rua, cidade e estado, e preenchendo o cep.
Encontrado os dados, o campo cep deve ser travado, deixando os demais campos abertos para eventual reparo do texto. Não se encontrando os dados, seja por qualquer razão, os campos devem ficar abertos para correção eventual.
Portanto, pergunto se estas fórmulas podem ser passadas para uma macro, seguindo os critérios informados acima. Seguem a planilha original da ViaCEP para avaliação, bem como a minha planilha onde pretendo aplicar a macro, e também imagens ilustrativas do relato acima
Grato desde já pela atenção.
Plan Teste Cep.ods (325.9 KB)
Plan Teste Cadastro de Clientes.ods (156.0 KB)