XL 2019 Fonction htmlCodePage qui ne fonctionne pas

Automatik

XLDnaute Nouveau
Bonjour tout le monde,



Je me lance dans le Vba, j'ai déjà fait quelques trucs mais là je bloque sur quelque chose:

Récupérer des données d'un site.

le site: https://www.coordonnees-gps.fr/

Alors l'objectif final est de mettre la latitude et la longitude directement dans deux cellules sur excel en fonction d'une adresse dans une autre cellule.

Mais dès le début je bloqué je tente ce code:
VB:
Sub test

Code = htmlCodePage ("https://www.coordonnees-gps.fr/")



Msgbox code

End sub

et une erreur s'affiche sur "htmlCodePage"

Vous pourriez m'aider ?
 
Solution
Bonjour à tous,
Pour indiquer le point Gps à partir d'une adresse, il y a le site national "adresse.data.gouv.fr".
P
Demo_gps.gif

fanch55

XLDnaute Barbatruc
Bonsoir,
La fonction indiquée fait partie d'un pack de fonctions complémentaires développées par

Si vous l'installez sur votre Pc, il faudra le faire également sur tous les Pc sur lesquels il doit être exécuté .
 

Automatik

XLDnaute Nouveau
Bonjour,
Globalement les deux fichiers répondent à ma question vous êtes des chefs !!

Juste une chose, si je veux rentrer les adresses entièrement dans une seule cellule, est ce que c'est possible ?

J'ai essayé de modifié en fonction de mon fichier et ça à l'aire de marcher mais j'ai une erreur qui apparaît juste à la fin sur le code:

VB:
Function Gps(Adr As String) As Variant
Dim Txt As String, T As Variant

    Txt = HTML(GOUV & Adr & "&limit=1").Txt
    T = Split(Txt, "coordinates"": [")
    Gps = Split(T(1), "]}")(0) 'ici une erreur apparaît'
End Function

Il est écrit Erreur d'execution '9':
L'indice n'appartient pas à la sélection

lien de mon fichier:Test coordonnées GPS
 

fanch55

XLDnaute Barbatruc
Normal,
Il est inutile de créer des lignes vides dans un tableau structuré .
Vous avez l'erreur car vous essayez d'obtenir des coordonnées pour une adresse vide ...
Le code ci-dessous devrait résoudre votre problème :
VB:
Sub Localisation()
Dim Adr As String, I As Integer, T As Variant

    With Sheets("Test")
        For I = 1 To [Tableau4].Rows.Count
            If [Tableau4[Adresse]].Rows(I) <> "" Then
                Adr = [Tableau4[Adresse]].Rows(I).text
                T = Split(Gps(Replace(Adr, " ", "+")), ",")
                If UBound(T) > 0 Then
                    [Tableau4[X]].Rows(I) = T(0)
                    [Tableau4[Y]].Rows(I) = T(1)
                End If
            End If
        Next I
    End With
End Sub
 

Automatik

XLDnaute Nouveau
Normal,
Il est inutile de créer des lignes vides dans un tableau structuré .
Vous avez l'erreur car vous essayez d'obtenir des coordonnées pour une adresse vide ...
Le code ci-dessous devrait résoudre votre problème :
VB:
Sub Localisation()
Dim Adr As String, I As Integer, T As Variant

    With Sheets("Test")
        For I = 1 To [Tableau4].Rows.Count
            If [Tableau4[Adresse]].Rows(I) <> "" Then
                Adr = [Tableau4[Adresse]].Rows(I).text
                T = Split(Gps(Replace(Adr, " ", "+")), ",")
                If UBound(T) > 0 Then
                    [Tableau4[X]].Rows(I) = T(0)
                    [Tableau4[Y]].Rows(I) = T(1)
                End If
            End If
        Next I
    End With
End Sub
Merci pour votre aide, tout marche parfaitement maintenant !!
Je vais pouvoir avancé plus rapidement, j'aurais d'autres choses à mettre en place (et sûrement des questions..) mais d'abord je vais essayer par moi-même car je trouve ça super intéressant ! D'ailleurs je vais essayer de décrypter déjà ce code car je ne comprend pas encore tout !

En tout cas c'est très sympathique de m'avoir aidé.

Bonne fin de journée.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon