Comment convertir une adresse postale en coordonnées GPS sur Excel (Latitude et longitude) ?

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Dans ce tutoriel, je vais vous montrer comment obtenir des coordonnées GPS (latitude et longitude) à partir d’une adresse postale. Nous verrons que pour cela, il sera nécessaire de construire une petite fonction personnalisée qui repose sur l’utilisation du service web OpenStreetMap.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

1. Comment convertir des adresses postales en coordonnées GPS

Comme nous venons de le voir dans l’introduction de ce tutoriel, nous allons voir comment convertir une série d’adresses en coordonnées GPS :

Excel formation - convertir adresse postale en coordonnées gps - 01

Pour pouvoir convertir une adresse postale en coordonnées GPS, le moyen le plus rapide et le plus simple est d’utiliser un service web, que nous pourrons ensuite analyser pour extraire la portion d’information qui nous intéresse.

Il existe de nombreux services sur internet qui propose de réaliser cette conversion, le plus célèbre étant incontestablement celui de Google.

Celui-ci propose en effet une API spécifique qui fournit en autres choses ce genre de service.

Une API est une interface de programmation d’application, comprenez par là un ensemble d’outils à destination principale des développeurs.

Pour simplifier, et notamment pour éviter d’avoir à souscrire à cet API auprès de Google, nous allons donc découvrir une solution alternative.

Nous allons donc utiliser les services du principal concurrent de Google Maps, à savoir OpenStreetMap, que nous retrouvons à l’adresse suivante :

https://www.openstreetmap.org/

Nous commençons donc par nous y rendre, puis nous saisir la première adresse de notre liste, afin d’analyser le comportement opéré :

Excel formation - convertir adresse postale en coordonnées gps - 02

Tout d’abord, nous pouvons constater qu’OpenStreetMap a bien identifié l’adresse demandée.

En plus de cela, nous pouvons nous apercevoir que cette adresse se retrouve directement saisie dans la barre d’adresse de la page :

Excel formation - convertir adresse postale en coordonnées gps - 03

Nous pourrons donc facilement appeler cette adresse en utilisant le lien suivant :

https://www.openstreetmap.org/search?query=5%20Avenue%20Anatole%20France%2075007%20Paris

Si nous recopions uniquement cette partie dans la barre d’adresse, nous pourrons constater que la page sera automatiquement redirigée à l’adresse :

https://www.openstreetmap.org/search?query=1%20Avenue%20Simon%20Bolivar%2075019%20Paris#map=19/48.87383/2.38484

La partie ajoutée correspond justement à ce qui nous intéresse, c’est-à-dire les coordonnées GPS.

 

2. La fonction COORDONNEESGPS()

Pour générer un équivalent de cette adresse dans Excel, nous pouvons simplement concaténer les différents éléments en utilisant une esperluette :

="https://www.openstreetmap.org/search?query="&A8 

Excel formation - convertir adresse postale en coordonnées gps - 04

Cela étant fait, nous allons pouvoir analyser l’URL affichée dans la barre d’adresse pour obtenir les coordonnées GPS.

Malheureusement, il ne sera pas possible d’obtenir cette information directement avec une fonction Excel.

Mais pas d’inquiétude, nous allons développer notre propre fonction directement en VBA.

Et pour que ce tutoriel soit accessible à tout le monde, nous allons revenir dans le détail sur aspect de cette dernière.

Si vous souhaitez aller plus loin dans la découverte du langage VBA, vous pouvez évidemment consulter la formation disponible sur le blog en cliquant ici.

Pour commencer, nous allons lancer l’éditeur de code VBE (pour Visual Basic Editor), qui est l’éditeur de code intégré dans les différentes applications de la suite Office et qui permet de développer des macro-commandes en VBA.

Pour cela, nous appuyons simplement sur les touches [Alt]+[F11] :

Excel formation - convertir adresse postale en coordonnées gps - 05

VBE s’ouvre alors et nous allons commencer par créer un nouveau module.

Un module est une feuille de saisie de code dans laquelle nous allons pouvoir saisir nos macros et fonctions.

Pour insérer un nouveau module, nous nous rendons dans le menu Insertion > Module :

Excel formation - convertir adresse postale en coordonnées gps - 06

Une fois le module inséré, nous pouvons créer notre fonction, en utilisant le mot-clé Function, suivi du nom de la fonction :

Function coordonneesGPS()
 
End Function

Excel ajoute ensuite la dernière ligne (End Function), et tout ce que nous viendrons saisir entre ces deux lignes sera exécuté lorsque nous appellerons cette fonction.

Pour commencer, nous allons passer un argument à la fonction, en le saisissant simplement entre les parenthèses.

Ici, il s’agira de venir saisir l’adresse de la page web, nous appelons donc cet argument URL et nous le typons en tant que String, c’est-à-dire une chaine de caractères :

Function coordonneesGPS(URL As String)
 
End Function

 

3. L’objet VBA Internet Explorer

Maintenant que la fonction est préparée, nous allons pouvoir lancer la page correspondante à l’URL afin d’analyser la redirection (la nouvelle adresse d’accès à la page dans laquelle OpenStreetMap ajoute les coordonnées GPS).

Pour ce faire, nous allons devoir créer un objet qui va permettre de lancer la page web.

Cet objet, nous allons l’appeler web, et le définir en tant que « InternetExplorer.Application » :

    Dim web As Object
    Set web =  CreateObject("InternetExplorer.Application")

Pour lancer la navigation, nous utilisons maintenant la méthode navigate de cet objet web avec pour paramètre l’URL cible :

    web.navigate URL

Il ne reste plus qu’à attendre le chargement complet de la page :

    Do While web.busy And web.readyState <> 4
        DoEvents
    Loop

Ensuite, nous pouvons récupérer la redirection de l’adresse avec la propriété locationUrl :

    coordonneesGPS = web.locationUrl 

Pour simplifier la lecture du résultat, nous ne récupérons ici que la partie qui a été ajoutée à la fin, en supprimant tout ce qui se trouve tout d’abord tout ce qui se trouve avant le symbole dièse :

coordonneesGPS = Right(coordonneesGPS,  Len(coordonneesGPS) - InStr(coordonneesGPS, "#"))

Et dans un deuxième temps, tout ce qui se trouve avant le slash :

coordonneesGPS = Right(coordonneesGPS,  Len(coordonneesGPS) - InStr(coordonneesGPS, "/"))

Nous ne pouvons pas extraire directement ce qui se trouve après le slash, étant donné que nous en retrouvons un grand nombre dans l’adresse complète.

Par contre, avant que la redirection ne soit effective, il est nécessaire d’attendre un peu de temps.

Pour cela, nous insérons une petite pause d’une seconde en utilisant la procédure que nous avions mise en place lors du tutoriel dédié :

    Sub pause(duree As Double)
    Dim finPause As Double
    finPause = Timer + duree
    Do While Timer < finPause
        DoEvents
    Loop
End Sub

Puis, nous pouvons insérer cette pause d’une seconde juste avant d’affecter la valeur de web.locationUrl à la fonction :

    pause (1)

Attention, la durée de cette pause est à adapter en fonction des conditions de travail : débit internet et ressources disponibles sur poste de travail.

En effet, le but de celle-ci est de permettre à OpenStreetMap de recentrer la page, ce qui peut demander un certain temps.

Et enfin, pour finir, nous pouvons fermer la session d’internet explorer avec un web.Quit :

    web.Quit

Nous pouvons maintenant tester la fonction directement sur la feuille de calcul en l’appelant comme n’importe quelle autre fonction :

=coordonneesGPS("https://www.openstreetmap.org/search?query="&A8 

Excel formation - convertir adresse postale en coordonnées gps - 07

Bien entendu, le temps d’exécution de ces fonctions va dépendre de plusieurs éléments :

  • La qualité de la connexion internet,
  • Les ressources disponibles

Sachant que chaque requête demandera au moins une seconde, qui correspond à la pause imposée.

 

4. Extraire la latitude et la longitude

Maintenant, nous pouvons extraire les informations de ce résultat pour obtenir la latitude et la longitude en fonction des adresses correspondantes.

Pour la latitude tout d’abord, il suffit d’extraire la partie située sur la gauche du slash, nous utiliserons donc les fonction GAUCHE() et TROUVE() :

=GAUCHE(B8;TROUVE("/";B8)-1)

Ensuite, pour la longitude, nous utiliserons bien évidemment la fonction DROITE() :

=DROITE(B8;NBCAR(B8)-TROUVE("/";B8))

Excel formation - convertir adresse postale en coordonnées gps - 08

 

 



Articles qui pourraient vous intéresser

Comment lister les fichiers enregistrés dans un dossier et ses sous-dossiers sans VBA sur Excel ?
Comment créer un sapin de Noël sur Excel ?
Comment convertir une adresse postale en coordonnées GPS sur Excel (Latitude et longitude) ?
Comment accélérer vos macros VBA sur Excel (jusque 25x plus rapide) ?
Comment renommer automatiquement une feuille en fonction d’une cellule Excel ?
Comment positionner et déplacer un objet (image, bouton…) en VBA pour créer un mini-jeu Pokémon sur Excel ?
108 astuces pour grands débutants sur Excel !
Comment suivre les modifications apportées sur un fichier Excel ?
Comment jouer à « 1, 2, 3, Soleil » de Squid Game sur Excel ?
Comment créer une fonction de recherche à deux critères pour récupérer la valeur et le format d’une cellule Excel ?
Comment écrire un nombre en toutes lettres avec une fonction Excel ?
Comment compter le nombre de mots contenus dans une cellule Excel ?

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2022 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.