Importer des données depuis google maps
Bonjour à tous ,
Je suis en train de créer un code VBA qui permet d'importer des données depuis google maps , Le problème que j'ai rencontré c'est que google maps ne s'ouvre pas dans le " New web query " qui se trouve dans " données : importer depuis web "on me dit que le navigateur que j'utilise est ancien . J'ai téléchargé de nouveaux navigateurs mais toujours le même problème . si quelqu'un peut bien m'aider , je lui en serais reconnaissant
Bonjour,
je m'y connais pas trop en vba mais voila un code pour calculer la distance entre 2 adresses qui est fonctionnel chez moi. Tu y trouveras surement ce que tu cherches :
'Calculate Google Maps Distance between 2 locations
Public Function GetDistance(start As String, dest As String)
Dim firstVal As String, secondVal As String, lastVal As String
firstVal = "http://maps.googleapis.com/maps/api/distancematrix/json?origins="
secondVal = "&destinations="
lastVal = "&mode=car&language=pl&sensor=false"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = firstVal & Replace(start, " ", "+") & secondVal & Replace(dest, " ", "+") & lastVal
objHTTP.Open "GET", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
If InStr(objHTTP.responseText, """distance"" : {") = 0 Then GoTo ErrorHandl
Set regex = CreateObject("VBScript.RegExp"): regex.Pattern = """value"".*?([0-9]+)": regex.Global = False
Set matches = regex.Execute(objHTTP.responseText)
tmpVal = Replace(matches(Index).SubMatches(0), ".", Application.International(xlListSeparator))
GetDistance = CDbl(tmpVal)
Exit Function
ErrorHandl:
GetDistance = -1
End Function
Hello,
A mon avis, le navigateur Excel est built-in et probablement light. Du coup, peu importe ta version d'IE et cie, tu l'auras dans l'os. A voir si la dernière version d'office n'est pas plus adaptée
Merci beaucoup pour vos aides et conseils , Le programme que m'a filé Jerle marche relativement bien ( à par le problème du nombre de request limité ) mais sinon (y)
Bonjour et merci Jerle pour cette fonction.
J'ai enfin trouvé une fonction qui semble fonctionner chez moi. Le seul soucis est que la valeur qui m'est renvoyée est fausse
Alors je me demande où est le problème : est-ce parce que je n'utilise pas Firefox ?
J'ai repris le code ci-dessus pour créer la fonction :
'Calculate Google Maps Distance between 2 locations
Public Function GetDistance(start As String, dest As String)
Dim firstVal As String, secondVal As String, lastVal As String
firstVal = "http://maps.googleapis.com/maps/api/distancematrix/json?origins="
secondVal = "&destinations="
lastVal = "&mode=car&language=pl&sensor=false"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = firstVal & Replace(start, " ", "+") & secondVal & Replace(dest, " ", "+") & lastVal
objHTTP.Open "GET", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
If InStr(objHTTP.responseText, """distance"" : {") = 0 Then GoTo ErrorHandl
Set regex = CreateObject("VBScript.RegExp"): regex.Pattern = """value"".*?([0-9]+)": regex.Global = False
Set matches = regex.Execute(objHTTP.responseText)
tmpVal = Replace(matches(Index).SubMatches(0), ".", Application.International(xlListSeparator))
GetDistance = CDbl(tmpVal)
Exit Function
ErrorHandl:
GetDistance = -1
End Function
Et je pensais l'utiliser ainsi (NomVille, CPVille et Pays sont choisis par l'utilisateur) :
Private Sub Trouver_Click()
Distance = GetDistance("Gravelines 59820 France", NomVille & " " & CPVille & " " & Pays)
End Sub
Du coup, si je demande un trajet Gravelines - Dunkerque par exemple, cela devrait me donner la distance de 22.4 km.
Or, je récupère une valeur égale à 28949. Je ne vois d'où cela vient...
Quelqu'un comprend-il ?
Merci pour votre aide.
Je me permets de upper ma demande, je pense qu'elle n'a pas été vue.
Si quelqu'un a une idée de pourquoi j'ai ce résultat, je suis preneur !
Merci