Distance exacte en décimale

Bonjour,

Je cherche un moyen pour que la distance entre deux points ne soit pas arrondie au supérieur ou à l’inférieur, mais avoir la valeur exacte de ce que donne google map.

Voici le fichier: CalculDistance.xlsm (21,7 Ko)

Départ : ZAC du Pied des Gouttes 25200 Montbeliard
Arrivée: 90100 Delle
Distance affiché dans le fichier excel est 19 km

La distance affiché sur google map est de 19,6 km, voici en image

Comment faire pour afficher la même valeur et avec 2 décimal ?

Bonjour
Je me permet d’apporter un éclairage sur la distance obtenu sans décimal
Elle vient tout simplement du site utilisé pour récupérer l’information qui la fourni dans cet état
Un extrait des informations récupéré avec en jaune la distance :

Donc à partir d’une donnée sans décimale obtenu difficile de fournir une valeur plus précise

Il faudrait trouver un autre site qui travaille les distances à la décimale

Ainsi donc l’explication

Hello FFO,

Effectivement, je n’ai pas pensé à regardé dans le code source de la page :), merci.

Je viens de trouver un autre script pour le calcul des km directement via Google Maps avec une clef API enlevé du fichier pour la publication sur le forum.

J’ai adapté le script à mon fichier, mais je ne comprend pas l’erreur (1004) affichée:
*Erreur d’exécution « 1004 »
La méthode ‹ Range › de l’objet ‹ _Global › à échoué
Il y trop d’information différente sur google pour comprendre l’erreur que j’ai.

Voici aussi le fichier: Programme v7.xlsm (38,0 Ko)

Sais-tu d’ou pourrait venir mon problème ?
Est-ce un renseignement que j’aurais oublié, si oui quoi ?

Merci d’avance pour ton aide. :smiley:

P.S.: dernière version d’excel sous Microsoft Office 365 sur Windows 10 64 Bit

Bonjour

Ta ligne de code est incorrecte

Une instruction Cells s’adresse à un onglet nommé ou l’onglet actif
Un onglet nommé « Feuil1 » se présente comme ceci : Sheets(« Feuil1 »).Cells
En aucun cas l’instruction Cells s’adresse à un Range comme tu l’as écris
Soit tu nommes un onglet dans ton instruction For Each soit tu n’en nomme pas et implicitement c’est l’onglet actif qui sera pris en considération
Donc il faut écrire comme cela :

For Each cel In Sheets(« Google Maps »).Cells
ou
For Each cel In Cells

Mais attention si tu ne précises pas plus les cellules de l’onglet la boucle For Each Cells va scruter toutes les cellules de ta feuille
Pas concevable elle serait interminable

Il faut cerner précisément les cellules à prendre en compte
Dans ton fichier je vois que les cellules concernées par des adresses pour établir des distances sont celles des colonnes A à D en 2° ligne donc je mettrais comme ceci :
For Each cel in Sheets(« Google Maps »).Range(« A2 »,« D2 »)
Ou puisque tu as rendu l’onglet « Google Maps » actif un peu avant dans cette procédure tu peux mettre
For Each cel In Range(« A2 »,« D2 »)

J’ai bien corrigé ainsi ta procédure qui ne s’arrête plus à cette instruction donc elle ne pose plus de problème
Mais le traitement stop sur ces lignes :

tempDist = matches(0).Submatches(0)
tempDur = matches(0).Submatches(0)

Cela ne semble pas lui plaire

Je n’ai pas beaucoup de connaissance les concernant
Elles doivent certainement être liées aux informations récupérées sur le site et leur bug doit être en rapport

A étudier en fouinant sur le web

Hello,

N’ayant plus beaucoup de cheveux, j’ai décidé de passer à une autre méthode sans VBA pour ces calculs de kilomètres.

Je m’arrachais trop les cheveux à vouloir comprendre et trouver une solution à ce script. J’y reviendrai dessus, dès que j’aurai compris certains bases qui me manque.

Mais merci de ta réponse tjrs utile.

Bon dimanche

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.