Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Récupérer la latitude et longitude de sa position actuelle

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonjour à tous,

Je cherche à récupérer automatiquement ma position, longitude,latitude et ville, à l'ouverture du classeur,
pour les placer en variable et les intégrer dans mon programme

J'ai essayé avec "https://www.google.fr/maps/place/" mais je connais pas
J'ai trouvé des choses en rentrant la ville mais c'est pas ça que je souhaite

Merci d'avance à tous

Nicolas
 
Dernière édition:

dysorthographie

XLDnaute Accro
Bonjour,
je sais pas exactement ce que tu cherche mais voila le résultat que ca me donne.

Code:
Type PositionGps
    latitude As String
    longitude As String
    Ville As String
End Type
Sub test()
Dim Pos As PositionGps
Pos = GPS
OpenInIE Pos.latitude, Pos.longitude
End Sub
Private Function GPS() As PositionGps
    Dim Position As Object
   
    ' Obtenir la position de l'utilisateur
    Set Position = GetCurrentPosition()
   
    ' Extraire les informations de position
    GPS.latitude = Position("lat")
    GPS.longitude = Position("lon")
    GPS.Ville = Position("city")
   
 
End Function
Sub OpenInIE(latitude As String, longitude As String)
    Dim iePath As String
    Dim googleMapsURL As String
   
    ' Construire l'URL Google Maps
    url = "https://www.openstreetmap.org/?mlat=" & latitude & "&mlon=" & longitude
    googleMapsURL = "https://www.google.com/maps?q=" & latitude & "," & longitude
   
    ' Chemin vers Internet Explorer
    iePath = "C:\Program Files\Internet Explorer\iexplore.exe"
   
    ' Vérifiez si Internet Explorer existe à cet emplacement
    If Dir(iePath) = "" Then
        MsgBox "Internet Explorer n'est pas installé ou n'est pas trouvé à l'emplacement attendu."
        Exit Sub
    End If
   
    ' Ouvrir Internet Explorer avec l'URL
    Shell iePath & " " & googleMapsURL, vbNormalFocus
End Sub

Private Sub Workbook_Open()
    Dim latitude As String
    Dim longitude As String
    Dim city As String
   
    ' Obtenir la position de l'utilisateur
    Dim Position As Object
    Set Position = GetCurrentPosition()
   
    ' Extraire les informations de position
    latitude = Position("lat")
    longitude = Position("lon")
    city = Position("city")
   
    ' Afficher les informations récupérées
    Debug.Print "Latitude: " & latitude
    Debug.Print "Longitude: " & longitude
    Debug.Print "Ville: " & city
   
    ' Ouvrir l'URL dans Internet Explorer
    OpenInIE latitude, longitude
End Sub

Function GetCurrentPosition() As Object
    Dim http As Object
    Dim jsonResponse As Object
    Dim url As String
   
    url = "http://ip-api.com/json/"
   
    ' Créer une instance de l'objet XMLHttpRequest
    Set http = CreateObject("MSXML2.XMLHTTP")
   
    ' Effectuer la requête GET
    On Error GoTo ErrorHandler
    http.Open "GET", url, False
    http.Send
   
    ' Analyser la réponse JSON
    Set jsonResponse = JsonConverter.ParseJson(http.responseText)
   
    ' Nettoyer
    Set http = Nothing
   
    ' Retourner la réponse JSON
    Set GetCurrentPosition = jsonResponse
    Exit Function

ErrorHandler:
    ' Gestion des erreurs
    MsgBox "Erreur lors de la récupération des données : " & Err.Description
    Set GetCurrentPosition = Nothing
    Set http = Nothing
End Function
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD

Merci pour le boulot mais j'arrive pas à la faire matcher, je dois mal de débrouiller encore
 

dysorthographie

XLDnaute Accro
Bonjour,
Désolé une légère absence.
Rennome l'extension de txt en bas, pui dans ton projet VB fait un clic droit importé et sélectionnes le fichier.

Nous sommes tous sur IE.

Mais le but étant de vérifier l'exactitude du travail tu envoies l'URL dans debug.print et tu verifi manuellement.
 

Pièces jointes

  • JsonConverter.txt
    44.2 KB · Affichages: 5
Dernière édition:

jurassic pork

XLDnaute Occasionnel
Hello,
le souci c'est que si tu est sur un PC en général il n'y a pas de GPS dessus et la localisation est basée sur ton adresse I.P ce qui n'est pas du tout précis et en plus si tu fonctionnes avec un VPN c'est l'adresse du VPN utilisé qui est utilisé. Le seul moyen d'avoir une localisation précise c'est d'utiliser son adresse postale.
Ami calmant, J.P
 

vgendron

XLDnaute Barbatruc
Hello @jurassic pork
c'est ce qu'on se tue à lui expliquer...
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…