peut être que cela marche mieux parce que l'api Google a été mis a jour en juin dernier
j'ai pas bien regarder ton urlencode mais au premier regard tu semble recoder juste les points c'est bien ca ??
peut être que cela marche mieux parce que l'api Google a été mis a jour en juin dernier
j'ai pas bien regarder ton urlencode mais au premier regard tu semble recoder juste les points c'est bien ca ??
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Bonjour, bonjour !
Il y a déjà autant de solutions que d'intervenants ‼
Sinon pour rappel, depuis la version 2013 Excel dispose déjà de WorksheetFunction.EncodeUrl …
Et pour les versions précédentes, cela nécessite guère plus de 3 lignes de code comme dans cette discussion !
Voilà, voilà !
C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
Jawol (enfin plus ou moins)j'ai pas bien regarder ton urlencode mais au premier regard tu semble recoder juste les points c'est bien ca ??
Génial, c'est encore mieux ! Je t'aime !Et pour les versions précédentes, cela nécessite guère plus de 3 lignes de code comme dans cette discussion !
Euh... Je suis sur 2007Sinon pour rappel, depuis la version 2013 Excel dispose déjà de WorksheetFunction.EncodeUrl
Mais merci beaucoup Marc-L
C'est en creusant qu'on fait des trous
Autant pour moi ! J'ai été obnubilé par le smiley …
C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
Marc
je me suis dit pourquoi!! pas!!! après tout ca mange pas de pain
j'ai donc pris ta fonction sur le lien
et donc encoder les arguments de l'url
et ben ca me fait un truc bizarre et bien sur une erreur d'url invalide
regarde dans le debug dans la capture
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Sans poster ton code, je suis dans le brouillard !
Mais de toute manière, cette fonction ne doit être utilisée que pour les sites qui en ont besoin
car si ton URL en texte normal passe, à quoi bon ?!
Les rares fois où j'ai dû l'utiliser, je n'ai pas rencontré de souci …
C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
re
oui visiblement googlemaps n'en a pas besoins
j'ai même supprimé les replace sur les espaces et ca passe quand même
bon voila l'ébauche de la requête de la futur version de ma contrib sur les trajet avec detail
on constate que quand on fait la requête en xml et en mode "POST" le header de requête n'est pas requis
conclusion a quoi bon (parsejsonner ( a mettre dans le dictionnaire le petit Patrick) quand on peut manipuler les nodes du xml
voila l'ebauche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Function Convert2URL$(TXT$) With CreateObject("MSScriptControl.ScriptControl") .Language = "JScript" .AddCode "function encode(txt) {return encodeURIComponent(txt);}" Convert2URL = .Run("encode", TXT) End With End Function Function itigoogle(dep, fin) Dim REQ As Object, url$, googleResult As Object, etape As Object, duré As Object, distance As Object, i% Set REQ = CreateObject("microsoft.xmlhttp") Set googleResult = CreateObject("MSXML2.DOMDocument") url = "http://maps.google.fr/maps/api/directions/xml?origin=" & dep & "&destination=" & fin Debug.Print url With REQ .Open "POST", url, False '.setRequestHeader "Accept", "text/html, application/xhtml+xml, */*" '.setRequestHeader "Accept-Language", "fr-FR" '.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" '.setRequestHeader "Accept-Encoding", "gzip, deflate" '.setRequestHeader "Host", "maps.google.fr" '.setRequestHeader "Connection", "Keep - Alive" '.setRequestHeader "Cache-Control", "no-cache" .send googleResult.LoadXML (REQ.responsetext) Set etape = googleResult.getElementsByTagName("html_instructions") Set distance = googleResult.getElementsByTagName("distance") Set duré = googleResult.getElementsByTagName("duration") ReDim tableau(etape.Length, 7) For i = 0 To etape.Length - 1 tableau(i, 0) = Replace(Replace(Replace(etape(i).Text, "<b>", ""), "</b>", ""), "/D", " par la D ") tableau(i, 0) = Replace(Replace(tableau(i, 0), "<div style=""font-size:0.9em"">", " "), "</div>", "") tableau(i, 1) = distance(i).ChildNodes(1).Text tableau(i, 2) = duré(i).ChildNodes(1).Text Next itigoogle = tableau End With End Function Sub test() Cells.ClearContents tabl = itigoogle("257 chemin de forgentier toulon", "paris 75000") Cells(1, 1).Resize(1, 3) = Array("Detail de l'étape ", "Distance a parcourir ", "temps estimé") Cells(2, 1).Resize(UBound(tabl), 3) = tabl End Sub
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
J'ai ajouté un timer pour éviter d'envoyer trop de requêtes à la fois savez-vous si ont peut la positionner à la milliseconde?
ha trouvé...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Wait Now + TimeValue("00:00:01")
Pour info à 0.5s j'ai des erreurs, 0 faute à 0,7s
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Wait (Now + 0.000005)
la on est encore dans une gestion d'attente
peut être un do/loop until status=200 avec un timer de rupture serait plus indiqué non? cela éviterait de sleeper pendant trop longtemps
a mediter
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Salut,
oui via une boucle d'attente avec une simple variable date à comparer avec Now.
Mais si le Wait à 0.00001 fonctionne, à quoi bon …
C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
Mais si le Wait à 0.00001 fonctionne, à quoi bon …
selon les point 1 seconde est juste
le mieux selon moi c'est d'attendre le status 200 et même tester le string
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager