Aprenda a utilizar a fórmula ÍNDICE & CORRESP
em 18 de Abril de 2018
Bom Dia, Turma!
É sempre bom viajar e arejar as idéias após longos meses de estudos, trabalhos e o estresse acumulado devido à rotira que vivemos.
Programar uma viagem exige uma série de cuidados, como organizar um roteiro, verificar locais para descanso, dimensionar a bagagem, verificar a manutenção do carro e, é claro, conhecer as rotas e as distâncias entre as cidades. Sei que hoje a tecnologia proporciona uma série de facilidades neste último quesito, tais como o GPS e o famoso WAZE, que indica até se na pista há buracos ou se existe um guarda do CET multando!!hehehe
Este artigo têm como intuito incorporar ao Excel a função:
Esta função é criada com programação VBA, sendo assim, devemos seguir os seguintes passos:
Arquivo => Opções => Personalizar Faixa de Opções => Selecionar Desenvolvedor na lista a direita
Inserir => Selecionar Módulo
Function Km_Distancia(Origin As String, Destination As String) As Double
'Requer referência ao: 'Microsoft XML, v6.0'
Dim Solicitacao As XMLHTTP60
Dim Doc As DOMDocument60
Dim Distancia_Pontos As IXMLDOMNode
Let Km_Distancia = 0
'Checa e limpa as entradas
On Error GoTo Sair
Let Origin = Replace(Origin, " ", "%20")
Let Destination = Replace(Destination, " ", "%20")
' Le os dados XML da API do Google Maps.
Set Solicitacao = New XMLHTTP60
Solicitacao.Open "GET", "http://maps.googleapis.com/maps/api/directions/xml?origin=" _
& Origin & "&destination=" & Destination & "&sensor=false", False
Solicitacao.send
' Tornando o XML legível por usar o XPath
Set Doc = New DOMDocument60
Doc.LoadXML Solicitacao.responseText
' Obtendo o valor da distância entre os nós.
Set Distancia_Pontos = Doc.SelectSingleNode("//leg/distance/value")
If Not Distancia_Pontos Is Nothing Then Km_Distancia = Distancia_Pontos.Text / 1000
Sair:
' Tidy up
Set Distancia_Pontos = Nothing
Set Doc = Nothing
Set Solicitacao = Nothing
End Function
Ferramentas => Referências => Selecionar 'Microsoft XML, v6.0'
Exemplo da Função Km_Distancia:
- | A | B |
1 | DISTÂNCIA ENTRE LOCAIS | |
2 | ORIGEM: | Sao Paulo |
3 | DESTINO: | Diamantina |
4 | DISTÂNCIA: | =CONCATENAR(INT(Km_Distancia(B2;B3));" ";"km") |
Obs.: Os nomes das cidades devem ser digitados sem acentos ou caracteres especiais.
- | A | B |
1 | DISTÂNCIA ENTRE LOCAIS | |
2 | ORIGEM: | Sao Paulo |
3 | DESTINO: | Diamantina |
4 | DISTÂNCIA: | 858 km |
Consultor e Professor: Ivair Claudio Ferrari.
Um grande abraço a todos, espero que tenham gostado.
Carlos Roberto Roa
Ola pessoal , preciso de ajuda. Inseri o modulo com o codigo VBA, criei a chave no google maps e continua dando resultado 0. Por que?
Bom dia! Utilizei essa formula com a Key do TomTom e ela funcionou perfeitamente por mais de 1 ano. Porém repentinamente parou de funcionar. Tentei, sem sucesso, utilizar outra key do TomTom, utilizar em uma máquina fora da rede habitual e nada fucnionou.
Alguém passou pelo mesmo problema e conseguiu resolver? Será que o google não está mais aceitando a key do tomtom?
Boa tarde, Professor!
Tentei fazer a busca através do CEP, conforme você havia comentado em um dúvida abaixo (fiz a busca da seguinte forma SAO PAULO, 04285-080), mas mesmo assim o resultado da busca da zero.
Pessoal, esse procedimento infelizmente é refém de APIs pagas que possuem limitantes de volume de consultas diárias, ou seja,se você fizer várias consultas de uma só vez não irá funcionar. Isso é feito para não sobrecarregar os servidores, a melhor forma que encontrei para trabalhar com distâncias de forma offline é atrás da latitude e longitude das localidades, no meu site Acadêmicos do Excel ensino como elaborar isso...Lembrando que esse método lhe fornecerá distâncias aproximadas...
http://academicosdoexcel.com.br/2017/10/01/distancia-entre-locais-latitude-e-longitude/
Podem me enviar por favor em wilsinhoamorim@hotmail.com por favor.
Alguém tem a planilha ou o código para enviar no e-mail?
HELP SILMAR
adelsonrepre2020@gmail.com
Adelson, lhe enviei por e-mail o código.
Caro Silmar, você enviou mas eu não sei como gerar a chave no Google Cloud.
Oi pessoal,
Eu consegui a Key do TomTom, apliquei no código criado, mas continuo obtendo zero como resposta. Alguém tem alguma dica do que pode ser?
Pessoal, boa tarde.
Estou elaborando uma tabela de fretes, precisava de uma base com a distancias exemplo:
ORIGEM > DESTINO > KM
Não manjo muito de VBA, por acaso alguém tem uma base pronto para disponibilizar ou vender?
Grato.
Pessoal, boa tarde.
Estou elaborando uma tabela de fretes, precisava de uma base com a distancias exemplo:
ORIGEM > DESTINO > KM
Não manjo muito de VBA, por acaso alguém tem uma base pronto para disponibilizar ou vender?
Grato.
ola.. sou novo por aqui mas estou gostando muito ... enfim ... como eu faria pra fazer esse código pegar o tempo que levaria de um ponto ao outro também? alguém poderia me ajudar?
Wilian, como que você conseguiu com a API do TomTom? Você alterou alguma linha do código?
Boa noite a todos!
O código só funcionou depois que eu realizei o processo de cadastro de pagamento. Ao realizar esse processo aparece uma especie de tutorial para escolher qual API quer habilitar. Então, escolhi "Router" e habilitei. Então, funcionou!!
Se você não realizar o processo de cadastro para faturamento, não irá funcionar...
oi Vinicius ... eu consegui a minha API no site tomtom.. (https://developer.tomtom.com/user/login?destination=user/me/apps)super fácil e não precisa cadastrar formas de pagamento... deu certo pra mim tal isso ajude mais alguém
Olá bom dia, alguém que tenha conseguido poderia me enviar o planilha por email (keziammarques12@outlook.com)
Atenciosamente,
Boa tarde.
Não consigo sair do zero.
Alguém pode me auxiliar?
maatome@yahoo.com.br
Bom dia!!! Eu não consegui fazer essa planilha. Você conseguiu? POde me enviar o arquivo? Como faço para gerar a chave no google clou. p.carmo@moura-ba.com
Olá! Estou tendo dificuldades em fazer sair do "Zero". Poderia me enviar o exel pronto por e-mail por favor?
darlan_pcm@hotmail.com
obrigado!!!
Bom dia!!! Eu não consegui fazer essa planilha. Você conseguiu? POde me enviar o arquivo? p.carmo@moura-ba.com
Pessoal, estive ausente, não podendo responder devido a alguns problemas pessoais. Abaixo segue o código completo. LEMBREM DE AO COMPARTILHAR O CODIGO OU PLANILHA ONDE CONTEM A FUNÇÃO DE NÃO ENVIAR JUNTO A SUA CREDENCIAL, PORQUE O USO É BILHETADO E VOCÊ PODE ACABAR PAGANDO UM VALOR ALTO SE USAREM A FUNÇÃO.
Function Km_Distancia(Origin As String, Destination As String) As Double
'Requer referência ao: 'Microsoft XML, v6.0'
Dim Solicitacao As XMLHTTP60
Dim Doc As DOMDocument60
Dim Distancia_Pontos As IXMLDOMNode
Let Km_Distancia = 0
'Checa e limpa as entradas
On Error GoTo Sair
Let Origin = Replace(Origin, " ", "%20")
Let Destination = Replace(Destination, " ", "%20")
' Le os dados XML da API do Google Maps.
Set Solicitacao = New XMLHTTP60
chave_api = "COLOQUE AQUI A SUA CREDENDIAL GERADA NO CLOUD"
Solicitacao.Open "GET", "https://maps.googleapis.com/maps/api/directions/xml?origin=" _
& Origin & "&destination=" & Destination & "&sensor=false&key=" & chave_api, False
Solicitacao.send
' Tornando o XML legível por usar o XPath
Set Doc = New DOMDocument60
Doc.LoadXML Solicitacao.responseText
' Obtendo o valor da distância entre os nós.
Set Distancia_Pontos = Doc.SelectSingleNode("//leg/distance/value")
If Not Distancia_Pontos Is Nothing Then Km_Distancia = Distancia_Pontos.Text / 1000
Sair:
' Tidy up
Set Distancia_Pontos = Nothing
Set Doc = Nothing
Set Solicitacao = Nothing
End Function
Boa Tarde Silmar.
Tudo bem?
Notei que você esta conseguindo trabalhar com esta função.
Poderia por gentileza me dar um auxilio, pois não estou conseguindo.
o valor só permanece em zero.
Obrigado.
meu e-mail renan.penteado@cootravale.com.br
Boa tarde Renan, o problema deve estar na sua chave/credencial do cloud. Se quiser me mandar seu código por e-mail para que verifique silmar.ns@gmail.com
bom dia,
prezados, estou com problema persistente o calculo entre as cidades só da 0km
Silmar,
Não consigo sair do resultado 0, mesmo colocando minha chave corretamente (preciso instalar alguma API especifica na plataforma ou algo do tipo?). Poderia me ajudar com isso?
Att.,
Andre A., Filipe S. e demais.... na sua chave deve estar ativo as API: Directions API e Distance Matrix API.
Olá, bom dia, Silmar. Sabe se há uma forma de adaptar este código para usar coordenadas geográficas em vez de nomes de localidades? Tenho uma base de dados com uma série de localizações em que por vezes surge 0, noutros casos a distância diverge 4 ou 5 km porque se tratam de locais específicos para os quais devo contabilizar as distâncias exatas.
Desde já muito obrigado.
Ola Nelson, se você passar um endereço, a macro (api google) codifica geograficamente o endereço e o converte em uma coordenada de latitude / longitude para calcular a distância. Essa coordenada pode ser diferente, porque ao converter, é buscada a coordenada com acesso, mais próxima ao endereço. Por exemplo, uma entrada de edifício em vez de seu centro.
Se você passar coordenadas, elas serão usadas inalteradas para calcular a distância. Verifique se não existe espaço entre os valores de latitude e longitude.
A coordenada deve ser passada conforme o modelo abaixo, sendo primeiro a latitude e depois longitude.
41.43206,-81.38992
Apresentou erro.
Boa tarde Professor!
Poderia me enviar? Já realizei todas as modificações, porém o cálculo não demonstra nenhum resultado. alessandra.calado@outlook.com
Obrigada.
Boa tarde,
Como faço apra gerar esse código do "SEU CÓDIGO"?
se algué já tiver e puder compartilhar joaoricardocmc@hotmail.com
Após muitas tentativas, pedindo ajuda pra várias pessoas sem sucesso, consegui corrigir as expressões para que funcionasse o Key code.
Primeiramente, quando forem gerar a plataforma do Google Maps existem 3 produtos que podem ser escolhido: "Maps", "Routes" e "Places". Escolham "Routes", o qual está incluso o recurso "Directions" usado nó código VBA em questão.
Após gerado o KeyCode, é preciso fazer uma modificação no código VBA. Da seguinte forma:
CÓDIGO ERRADO
Solicitacao.Open "GET", "http://maps.googleapis.com/maps/api/directions/xml?origin=" _
& Origin & "&destination=" & Destination & "&sensor=false", False
CÓDIGO CORRETO
Solicitacao.Open "GET", "https://maps.googleapis.com/maps/api/directions/xml?origin=" _
& Origin & "&destination=" & Destination & "&sensor=false" & "&units=imperial" & "&key=SEU CÓDIGO", False
Lógico que onde diz "SEU CÓDIGO", você deve substituir pelo keycode gerado na Plataforma Google.
Fiquei desde ontem quebrando a cabeça, pra me dar conta que precisava trocar a URL "Http" por "Https" e só depois disso consegui fazer funcionar a aplicação.
Agora um desabafo.... eu não entendo por qual motivo uma pessoa descobre a solução e só compartilha por email conforme solicitação. Ainda envia o email pra uns e não responde o email de outros. A solução deveria ser publicada aqui ao invés disso.
O ser humano é vaidoso e gosta de levantar o troféu sozinho, essa é a verdade.
Espero que tenha ajudado vocês. Um abraço a todos.
Isso pouparia tempo de muita gente.
Obrigado por compartilhar uma alternativa Diego...Infelizmente não consigo atender todas as dúvidas e responder as perguntas, mas como você disse este espaço é de vocês, e é sempre importante compartilhar com todos...
Como trabalho em horário comercial e estou fazendo pós, o tempo esta cada vez mais curto, mas sempre que possivel disponibilizo soluções no site Acadêmicos do Excel, no qual, administro.
Abs e obg novamente!
Oi Diego, eu não entendi a parte do SEU CÓDIGO. Qual a dica para gerar o keycode na Plataforma Google? Abraços, gustavozenzen@hotmail.com
Poxa! vc pode compartilhar a atualizada por email? nandaguisi2@live.com fernanda.siqueira89@yahoo.com.br Me ajudaria tanto! Obrigada
Bom dia,
sabe se eu pago para criar e usar esse Keycode?
daniel.arcelino7@gmail.com
Boa tarde Diego, você poderia me ajudar?
Olá Silmar, boa noite!
Poderia enviar o código atualizado para o meu e-mail?
fmalmeid@gmail.com
Estou tentando aqui mas estou com o mesmo erro dos amigos que já postaram aqui, ficando com 0 no resultado.
Muito obrigado pela ajuda
Flávio
Boa tarde: fiz o procedimento, porem não esta dando certo.
Alguém pode enviar o formato correto e colo meu API?
Obrigado
Poderia compartilhar comigo?
alessandra.calado@outlook.com
Diego,
Muito obrigado pela sua ajuda. Desde ano passado vinha atrás de uma explicação assim.
Ano passado tentei de todas as formas e não consegui colocar para funcionar. Hoje estou feliz que tenha conseguido.
Funcionou perfeitamente!
Mais uma vez obrigado!
Já que estou aqui.. por algum acaso vc teria um código para buscar os valores de pedágio? hehe..
abraço
Boa Tarde Diego e aos colegas.
Tudo bem?
Notei que você esta conseguindo.
Poderia por gentileza me dar um auxilio, pois não estou conseguindo.
Obrigado.
meu e-mail renan.penteado@cootravale.com.br
Bom dia!!! Eu não consegui fazer essa planilha. Você conseguiu? POde me enviar o arquivo? p.carmo@moura-ba.com
Bom dia!!! Eu não consegui fazer essa planilha. Você conseguiu? POde me enviar o arquivo? p.carmo@moura-ba.com
Como faço para gerar a plataforma do Google Maps?
Bom dia Silmar, gentileza também compartilhar o código com a correção. Obrigado. joaopaulogb@outlook.com
Bom dia Silmar, poderia compartilhar o código com a correção comigo por favor?
foranges@gmail.com
Buenos dias soy Jhonny de Peru, tengo el mismo problema, me sale 0 al querer calcular, le agradeceria que me ayude con algun otro procedimiento o en que me podria estar equivocando, muchas gracias de antemano
Bom dia, Silmar.
Qualquer município que escolho para realizar a formula, me retorna "0", como eu insiro a nova Key na Função no VBA, poderia me ajudar? que outros procedimentos você fez?, meu e-mail: Luizishimoto@gmail.com
mago.marcus@hotmail.com
boa noite
fiz todo o procedimento porem a calculo da distancia fica sem 0 km
Marcus, provavelmente o problema está na criação da sua credencial no Google Cloud
Bom dia! Alguém conseguiu incluir a KEY do API no código do VBA do módulo? Já tentei várias alternativas e só retorna zero. Por gentileza, se puder, enviar no meu email deolubefilho@brturbo.com.br. Grato!
Boa tarde! estou enviando o código para o seu e-mail.
Oi , poderia me ajudar enviado o codigo para mim tbm :)
Jullia.bsouza@gmail.com
Oi , poderia me ajudar enviado o codigo para mim tbm :)
Jullia.bsouza@gmail.com
Boa Tarde!!! Poderia me mandar a solução deste erro??
Grato pela atenção e ajuda
Deoclerio, por gentileza, poderia compartilhar a solução deste erro??
Segue e-mail: fbfreithas@gmail.com
Bom dia, poderia compartilhar comigo também? estou com o mesmo erro, emila rodolfo-napoleao@hotmail.com
Enviado!
Silmar, tudo bem? Poderia me enviar também?
Estou precisando com uma certa urgência. Ficarei muito grato.
diegosabrito@hotmail.com
Oi , poderia me ajudar enviando o codigo para mim tbm?
Obrigado!
brunolgrego@hotmail.com
Olá Silmar, boa noite!
Poderia enviar o código atualizado para o meu e-mail?
Estou tentando aqui mas estou com o mesmo erro dos amigos que já postaram aqui, ficando com 0 no resultado.
Muito obrigado pela ajuda
Flávio
Olá Silmar, boa noite!
Poderia enviar o código atualizado para o meu e-mail?
fmalmeid@gmail.com
Estou tentando aqui mas estou com o mesmo erro dos amigos que já postaram aqui, ficando com 0 no resultado.
Muito obrigado pela ajuda
Flávio
Boa tarde, consegui ajustar a macro e estou utilizando foi preciso acessar o Google Cloud Platform e ativar as API, criar projeto, criar credencial e etc
Boa tarde SIlmar, consegui gerar a credencial no Claud, so não estou encontranto o local e a forma como coloco a key no codigo acima, pode me ajudar? mandar um print do seu ou algo do tipo? joseomjunior@gmail.com whatzap 21 9 9583-2537
Silmar, poderia me ajudar? Eu criei o key no google mas não consegui incluir na função, poderia nos compartilhar como você fez? Obrigada
Meu e-mail: nati-zinhaa@hotmail.com
Bom dia, Silmar.
Estou tendo a mesma dificuldade dos demais colegas, como eu insiro a nova Key na Função no VBA, poderia me ajudar? que outros procedimentos você fez?, meu e-mail: aldocsa@hotmail.com
Boa tarde! Natália e Aldo estou enviando o código para o e-mail de vocês.
Silmar, boa tarde!
Teria como enviar por e-mail a solução que você fez? fbfreithas@gmail.com
Francisco B., enviado.
Silmar, boa noite! será que voce poderia compartilhar no meu email o codigo que voce fez? grato desde já, ALMIR
almirvalverdejr@yahoo.com.br
Enviado!
Silmar, não consegui incluir a Key na função. Poderia compartilhar conosco como você fez?
diegosabrito@hotmail.com
Silmar, boa noite!
Poderia compartilhar o código que você fez? Grato desde já!
Vitor
vitorbiscardi@hotmail.com
Boa noite Silmar!
Consegue enviar no meu e-mail?
adelsonrepre2020@gmail.com
Bom dia pessoal, tudo bem?
Estou tendo dificuldades em rodar a macro, alguem poderia compartilhar comigo o excel, por favor?
Ajudaria muito!!!
meu email é flaviajunqueirafreitas@gmail.com
coloquei Curitiba e Recife, retorna 0. Não funcionou.
Amigos, bom dia. Notei que o código é super completo e permite a pesquisa até por nome de cidade. Entretanto, o que eu quero é algo bem simples: eu tenho uma planilha que uso no trabalho para calcular a distância entre a residência do aluno e a escola onde ele está matriculado. Não consegui adaptar o código fornecido pra isso. Li, em um comentário, também, a respeito de uma API grátis que a pessoa criou e permitiu que fizesse 2.500 consultas ao dia. Era basicamente isso que eu queria: usar o código na planilha que eu já montei e poder fazer, no máximo, essas 2500 consultas (a utilização da minha planilha não chega nem perto dessas 2500 consultas/dia; talvez atinja umas 300, no máximo). Alguém poderia me ajudar? zadir.junior@mpap.mp.br
Bom dia;
já uso está macro a algum tempo e agora atualizei o office para 2019 e não roda mais.
Poderia me auxiliar ?
Bom dia;
já uso está macro a algum tempo e agora atualizei o office para 2019 e não roda mais.
Poderia me auxiliar ?
Renato!
O problema está na API do Goolgle conforme informado no link: https://github.com/asgunzi/EncontraDistanciasVBA
Boa noite, estive usando sua macro o ano todo, mas tive que restaurar meu computador e instalei novamente o office 16 e agora não consigo fazer funcionar de jeito nenhum. Esta habilitado o 6.0 e modulo com exato texto mas fica sempre zerado agora. Pode me ajudar?
Eduardo!
O problema está na API do Goolgle conforme informado no link: https://github.com/asgunzi/EncontraDistanciasVBA
Sua planilha é muito interessante e útil, parabéns pelo trabalho. O único inconveniente é que ele entende que algumas cidades pertencem a outros estados, então o cálculo fica esquisito.
Boa tarde,
fiz tudo conforme a explicação, porem nao puxa a distancia.
Olá boa tarde! Quero programar uma planilha de calculo de frete, onde terá custo para tempo e quilômetro (parecido com a precificação da Uber), mas eu uso o Google Documentos, então é a Planilha do Google, existe essa mesma possibilidade nesse outro programa? Ou apenas em Excel?
Olá sr. Igo,
Esta possibilidade poderá ser implementada via fórmulas no Excel, pois como é possivel calcular a distância somente nos resta as variáveis de custos associados a quilometragem rodada. Abs
Bom dia Professor!
Quando executo o VB aparece a mensagem: "Nome repetido encontrado: Km_Distancia"
Saberia do que se trata esse erro?
Geralmente existe ambiguidade na informação, existem cidades com um mesmo nome em diferentes Estados. Sendo assim, é necessário referenciar na busca mais detalhes. Incluindo a cidade acompanhado com a vírgula o Estado. Abs e desculpe a demora, estou com mtas atividades.
E como passar coordenadas geográficas ao invés do nome do município
Olá sr. Wandeley,
Eu tenho um site que se chama Acadêmicos do Excel, postei a uns 2 meses um método de cálculo com coordenadas geograficas...Acredito que irá lhe ajudar.
http://academicosdoexcel.com.br/2017/10/01/distancia-entre-locais-latitude-e-longitude/
Olá sr. Wandeley,
Eu tenho um site que se chama Acadêmicos do Excel, postei a uns 2 meses um método de cálculo com coordenadas geograficas...Acredito que irá lhe ajudar.
http://academicosdoexcel.com.br/2017/10/01/distancia-entre-locais-latitude-e-longitude/
Caro Prof. Carlos, boa tarde.
Segui o passo a passo, porém, a distância sempre aparece zerada na fórmula?
Estou utilizando a versão 171 (Office 365 ProPlus).
Obrigado!
Olá Jhonatan,
Geralmente este problema ocorre quando o volume de consultas diárias são excedidas ou quando alguns apis não são habilitados...
Este office 365 por ter suporte a tecnologias na nuvem e manipulação online, esta constantemente tendo atualizações...
Como fazer a consulta por CEP ao invés de nome da cidade?
Olá Fernando!!Desculpe a demora, estou em uma rotina com muitas atividades, mas sempre que possível respondo a todos.
Com este sistema é possível localizar via CEP, mas antes você deverá indicar a cidade correspondente ao mesmo, por exemplo: Sao Paulo, 01234-123.
Para entender melhor a dinâmica de trabalho do CEP, existe um esquema bem legal no site dos correios, https://www.correios.com.br/para-voce/precisa-de-ajuda/o-que-e-cep-e-por-que-usa-lo/estrutura-do-cep
O que você precisará na verdade é entender basicamente o 1º número do CEP, que é correspondente a região (Estado), ou no máximo o 2º número que são as sub-regiões (municípios)
Espero que tenha lhe ajudado!
Abs,
Carlos Roa
Boa tarde meu amigo! Locais como Sao Gabriel da Cachoeira, Tabatinga, Barcelos, entre outros, não estão calculando. Sabe o que pode ter ocorrido?
Ola Renato,
Estou fora agora, mas logo mais vou fazer algun testes...Em primeia mão, não utilize acentos ou caracteres especiais, alguns casos pode ser que o ao invés de "da" é "de". Existem algumas cidades que existem algumas pequenas peculiaridades na grafia.
Ola Renato,
Estou fora agora, mas logo mais vou fazer algun testes...Em primeia mão, não utilize acentos ou caracteres especiais, alguns casos pode ser que o ao invés de "da" é "de". Existem algumas cidades que existem algumas pequenas peculiaridades na grafia.
Olá Renato, primeiramente desculpe pela demora, estou em muitas ativiades.
Verifiquei a sua situação e percebi que estas cidades, possuem o mesmo nome em diferentes estados, sendo assim sugiro por exemplo, inserir ao invés de Tabatinga (Tabatinga, SP ou Tabatinga, PR)
Obs.: Perceba que o nome da cidade deve vir entre vírgulas, dividindo a UF.
Um grande abraço,
Carlos Roa
Carlos, boa tarde!
Como eu faço para ter o Km entre cidades de países diferentes? Exemplo: distância de São Paulo a Nova York...
No aguardo.
Ola Walter,
No momento, não consigo investigar o pq, mas assim q voltar de viagem lhe dou um retorno...Vou investigar quanto a destinos internacionais...
Olá Walter Borges!
Eu verifiquei a questão, e percebi que no modelo acima realmente não é possível isto, visto que o Google para a maioria dos países mostra a distância por rodovias ao invés de percurso aéreo.
O que deve ser feito é criar um código VBA que permita a inserção de um tipo de transporte, como carro e avião, e utilizar esta nova variável no modelo de API que do Google.
Pretendo postar futuramente, esta implementação!!
Obrigado por levantar esta situação, um grande abraço.
Carlos Roa
Um grande abraço,
Muito obrigado por compartilha a ferramenta, me ajudou bastante.
Porém foi preciso fazer uma atualização.... Foi necessário inserir no GET a variável key, gerada no Google APIs. Além disso alterei de HTTP para HTTPS. Depois dessas alterações funcionou muito bem, segue as linhas modificadas:
chave_api = "" 'Alterar caso pare de funcionar - Gerar no Google API
Solicitacao.Open "GET", "https://maps.googleapis.com/maps/api/directions/xml?origin=" _
& Origin & "&destination=" & Destination & "&sensor=false&key=" & chave_api, False
Obrigado pela atualização na fórmula, a sacada de uma key e o https foi mto boa!!!
Obrigado amigo, eu consegui a liberação do google api e consegui fazer mais cidades!!!!!!!!! Vlw pela dica.
ola, a minha parou de funcionar, vi essa solucao, porem chave_api= " " é uma variavel? se sim como devo declarar ela?
Carlos, Boa tarde!
Tô tentando calcular e não está retornando nada
Boa Noite Edmilson,
Possiveis causas:
1. Biblioteca Microsoft xlm v6.0 não habilita (verificar passo 5)
2. Regiões com nomes com caracteres especiais (escrever sem acento e ç)
3. A quantidade de consultas de regiões excedeu os limites diário colocado pelo google (este é um ponto crítico, q o google impõe para não sobrecarregar com mtas consultas planilhas vinculadas com o google)
Estou devendo para todos o método que independe do google, é uma formula que trabalha a latitude e longitude das regiões, o ibge possui a base de dados do brasil são mais de 5 mil cidades.
Novamente sr. Edmilson, veja a resposta que dei a Vanessa, nesta deixo o link para download da referida base de dados e o link que explica a metodologia para calcular a latitude e longitude...
Abs!!!
Olá Carlos,
Sou iniciante no Excel.
Atualmente estou com a seguinte situação:
Num mapa preciso selecionar uma área com um determinado raio. Das cidades dentro dessa área preciso saber nome delas, sua população (Masc X Fem), localização (latitude X longitude), a distância dela até oponto de origem.
Até já vi um vídeo em que é gerado um mapa com base na Long X Lat X Pop este último em três cores dependendo da quantidade.
Você pode sugerir alguma solução?
Boa Tarde, Sr. Luiz.
Existe uma função chama Hiperlink, ela pode ser aplicada de uma forma bem interessante a sua necessidade, para você pesquisar a população de uma dada cidade e outras informações, mas para utiliza-la é necessário internet.
Neste caso, fica assim:
=hiperlink("https://pt.wikipedia.org/wiki/"&celula_nome_da_cidade;celula_nome_da_cidade)
Esta função irá criar um link automatizado com o Wikipedia conforme a cidade digitada.
Bom dia, Carlos!
Como faço para ter como output valores com 1 casa decimal? Algumas distâncias que estou pesquisando são menores que 1 kilometro e, por isso, aparecem zeradas. Desde já, obrigado pela atenção.
Oi Matheus, existem muitas formas se se aumentar as casas decimais.
Neste caso utilize somente a função =Km_Distancia(Origem;Destino) e na guia "Pagina Inicial" na categoria "Número" aumente as casas decimais (seta para esquerda acompanhado de zeros).
Infelizmente o Google nos fornecerá até a terceira casa decimal, mas acredito que para distâncias pequenas já é o suficiente.
Espero que tenha ajudado!
Caso possua uma API_Key do Google qual seria a API a ativar do google nesta consulta e como ficaria o código VBA com a inclusão da API_Key?
Este é o grande problema nas consultas do google, o API_Key deles é fechado, mas a porta de acesso é liberada via uma solicitação, no qual restringe o usuário a um limite de consultas diárias, que acredito ser 100, tanto é que vários usuários estão se queixando dos valores zerados após replicar a fórmula para várias células.
Bom dia Carlos! Muito obrigada pelo tutorial, ajudou muito!
Infelizmente tenho um grande número de dados dos quais preciso do resultado da fórmula (são 1012 combinações até agora). Consegui alguns resultados porém muitos foram zerados e quando tentei rodar novamente, zerou tudo (inclusive os que já tinham sido calculados). Vi que em um dos comentários você disse ter um algoritmo aproximado sem depender do Google. Pode compartilhar conosco? Muito obrigada!!!
Bom Dia Vanessa! Muito obrigado pela cordialidade, fico muito feliz em ajudar a todos. Aliás, estou com o site Acadêmicos do Excel, com muito conteúdo exclusivo.
Quanto a distância, vou me organizar e colocar um post para explicar passo a passo como contornar esta situação, no entanto, será necessário montar uma base de dados com as coordenadas de latitude e longitude de cada cidade, pois a formula lhe fornecerá uma distância media entre dois pontos. eu tenho uma base com um pouco mais de 5.000 cidades.
Para não lhe deixar na mão, segue alguns links para lhe ajudar.
Base de dados das latitudes e longitudes (abrir em Excel e converter texto para coluna)
Para abrir no Excel você deve colocar em Abrir "Todos os arquivos" e na sequência na guia "Dados" procurar "Converter texto para coluna".
http://download.geonames.org/export/zip/BR.zip
O calculo das distâncias em Excel:
http://pasta1xls.blogspot.com.br/2009/05/como-calcular-distancia-entre.html
Atenciosamente,
Carlos Roa
Bom dia Carlos! Muito obrigada pelo tutorial, ajudou muito!
Infelizmente tenho um grande número de dados dos quais preciso do resultado da fórmula (são 1012 combinações até agora). Consegui alguns resultados porém muitos foram zerados e quando tentei rodar novamente, zerou tudo (inclusive os que já tinham sido calculados). Vi que em um dos comentários você disse ter um algoritmo aproximado sem depender do Google. Pode compartilhar conosco? Muito obrigada!!!
Para resolver esse problema alterei as seguintes linha.
Criei uma chave grátis no Google APIs, e ela permite 2500 consultar por dia, deve resolver seu problema tbm.
chave_api = "" 'Alterar caso pare de funcionar - Gerar no Google API
Solicitacao.Open "GET", "https://maps.googleapis.com/maps/api/directions/xml?origin=" _
& Origin & "&destination=" & Destination & "&sensor=false&key=" & chave_api, False
Carlos, boa tarde.
Acontece uma falha que não estou conseguindo resolver, algumas cidades não estão retornando o km e mostra como "0" (ex: Brasilia e Salvador), o poder ser, e como podemos resolver isso?
Obrigado.
Boa tarde
Carlos muito obrigado pela contribuição, assim como outro seguidor do tópico estou com a planilha exibindo os valores de km zerados já verifiquei em opções e o cálculo automático está habilitado, poderia me ajudar por favor?
Microsoft Excel 2010.
Boa dia Marcelo, geralmente isto acontece caso o usuário replique a formula muitas vezes (arrastar) pq infelizmente os servidores do Google limitam a quantidade de busca por usuário para não carregar os servidores deles...Provavelmente depois de algumas horas as formulas voltem a funcionar...Estou devendo para meus caros amigos uma solução q não envolva o Google, é um algoritmo q fornece uma distancia aproximada mediante as coordenadas fornecidas...Em breve estarei com um site disponível para dicas, aulas de e excel, curiosidades e um forum para debates de certos assuntos...Obrigado!!!
Procure inserir os nomes dos locais sem caracteres especiais ou acentos tb...
Procure inserir os nomes dos locais sem caracteres especiais ou acentos, isto pode influenciar na pesquisa tb...
Compreendi, muito obrigado pela explicação, fico no aguardo do algorítmo.
Algumas cidades também ficaram com quilometragem zerada pra mim, mas como o Carlos já comentou, tirei os acentos e cedilhas e deu certo. Algumas cidades tinham o mesmo nome de outra cidade em outro lugar, para essas eu acrescentei uma barra e UF (Ex.: California/PR), e funcionou.
Muito obrigado, Carlos, está me ajudando muito.
Prezado Carlos
É possivel, alem da distância entre 2 pontos utilizando o Google Maps no Excel, calcular tambem o tempo medio que leva para percorre-los?
Obrigado
Boa tarde Luis,
É possivel sim, crie uma celula a velocidade media do carro (km/h) ao longo de todo o percurso e em outra coluna divida a distancia percorrida (d) pela velocidade média...Com isso vc terá uma estimativa de tempo...Lembrando q o resultado será em horas, caso queira em minutos multiplique por 60
Carlos, bom dia!
Muito obrigado pelo retorno, porém não consegui o problema com a sua recomendação.
Quando for possível não deixe de disponibilizar o outro método de cálculo pois certamente ajudará mtas pessoas.
Mais uma vez obrigado!
Carlos, Boa tarde!
Sou iniciante no assunto e segui o passo a passo obtendo os resultados esperados.
Porém ao abrir o arquivo novamente e efetuar novas consultas de Origem Destino o resultado da função Km_Distancia esta trazendo valores zerados.
Como posso corrigir esse problema?
Boa Tarde alexandre, será que a sua planilha esta habilitada para calculo automático? Clique F9 para verificar se os resultados são atualizados...Esta formula possui uma pequena restrição imposta pelo google tb, caso o número de repetições das formulas exceda um valor de 100 pesquisas diárias ela para de funcionar, mas após um período retorna normalmente...Tenho um método de cálculo de distâncias q fornece uma aproximação boa para os resultados e independe do google, quando tiver um tempinho eu posto...abçs
A Fórmula (Função) é excepcional, me ajuda muito. Obrigado
A Unica dúvida e eu montei uma planilha e fixei todas as distancias,(colei valores) para que ao posicionar duas localidades me de a distancia da matriz, porem ta tendo divergências nas distancias que o Google informa, e possível acertar, pondo a distancia mas próxima como padrão?
Entendi, as divergências ocorrem devido as rotas não serem lineares, o sistema calcula uma distância média de ponto a ponto...O que se pode fazer é criar uma rota no Excel, inserindo cidades proximas e depois somar as distâncias...
Entendi, as divergências ocorrem devido as rotas não serem lineares, o sistema calcula uma distância média de ponto a ponto...O que se pode fazer é criar uma rota no Excel, inserindo cidades proximas e depois somar as distâncias...
Entendi, as divergências ocorrem devido as rotas não serem lineares, o sistema calcula uma distância média de ponto a ponto...O que se pode fazer é criar uma rota no Excel, inserindo cidades proximas e depois somar as distâncias...
Bom dia professor,
É possível pedir que a função retorne a menor distância exibida pelo google maps?
Entendi, as divergências ocorrem devido as rotas não serem lineares, o sistema calcula uma distância média de ponto a ponto...O que se pode fazer é criar uma rota no Excel, inserindo cidades proximas e depois somar as distâncias.
Bom dia, professor. é possível aparecer o google maps para o usuário determinar corretamente a rota, e após determinar a rota exportar as informações. Professor gostaria ver a possibilidade de marcarmos algumas aulas online. Abs
Bom dia Raphael ainda não tenho este sisteminha pronto, mas pretendo nas minhas proximas postagens criar uma rotina em vba para importar informações de uma planilha...Assim q tiver novidades lhe comunico, continue atualizado com os novos pots!abs
Bom dia Carlos, se eu quiser incluir mais de dois destinos, é possível? Você conseguiria me ajudar nisso?
Claro, mas acredito que com esta função já atenda, é só vc criar uma planilha com a célula origem e criar vários destinos em diferentes células. Abs
Para criar dois destinos utilize a formula mais de uma vez no Excel, crie um esquema de rotas!abs, espero ter ajudado!