[RESOLU] KML to Excel

Enerjp

XLDnaute Junior
Bonjour tout le monde,

Je ne sais pas si vous pourrez m'éclairer mais allons-y.

J'ai géocodé des adresses pour les placer sur google earth ou autre carte lisant du KML.

Après avoir corriger certaines positions mal placées sur google earth, je souhaite récupérer les nouvelles coordonnées (corrigées) de ces points.

Seulement google earth recrache Du KML "brute", sans retour chariot entre les balises de manière à pouvoir extraire plus facilement les nouvelles coordonnées. Soit quand je colle dans Excel j'ai 3 lignes qui vont jusqu'en colonnes ZZ vers labas.... (voir fichier excel pour plus de précision) au lieu d'avoir des données exploitables.

J'ai trouvé un truc comme quoi je pourrai transformer mon KML en XML puis à partir d'Excel/Données/à partir d'autres sources/XML pour ouvrir ce fichier sous la forme de la feuille 2 (pièce jointe).

Seulement, un message d’erreur apparait :
Référence de ficher non valide. le chemin d'accès au fichier est incorrect, ou un ou plusieurs des schémas référencés sont introuvables.

Bien sur si quelqu'un à une maros ou une commande permettant d'extraire par exemple le <nom> et les <coordonnées> associées de chaque points (kml to Excel et vis-versa) je suis preneur!! ^^

Voila merci d'avance.

Jean-Philippe
 

Pièces jointes

  • Essai_traduction_KML.xlsx
    15.9 KB · Affichages: 217
Dernière édition:

david84

XLDnaute Barbatruc
Re : KML to Excel

Bonjour,
ci-joint une macro utilisant des expressions rationnelles.
Elle t'extrait les adresses et coordonnées de la feuille 3.
Je n'ai pas beaucoup de temps actuellement à te consacrer mais si cela peut t'aider...
Code:
Sub Extraire_data()
Dim oRegExp As Object, oRegExp2 As Object, Tadr() As String
Dim DerLig As Long, i As Long, j As Long

Sheets("Feuil3").Columns(8).ClearContents
DerLig = Sheets("Feuil3").Range("A" & Sheets("Feuil3").Rows.Count).End(xlUp).Row

Set oRegExp = CreateObject("vbscript.regexp")
Set oRegExp2 = CreateObject("vbscript.regexp")

oRegExp.Pattern = "(<name>,)(.+)(</name>)"
oRegExp2.Pattern = "(<Point><coordinates>)([0-9,\.?]+)(</coordinates></Point>)"
    
For i = 1 To DerLig
    chaine = Sheets("Feuil3").Cells(i, 1)
    If oRegExp.test(chaine) Or oRegExp2.test(chaine) Then
        ReDim Preserve Tadr(j)
        If oRegExp.test(chaine) Then
           Tadr(j) = oRegExp.Replace(chaine, "$2")
        ElseIf oRegExp2.test(chaine) Then
           Tadr(j) = oRegExp2.Replace(chaine, "$2")
        End If
        j = j + 1
    End If
Next i

Sheets("Feuil3").Range("H1").Resize(UBound(Tadr) + 1) = Application.Transpose(Tadr)
Set oRegExp = Nothing
Set oRegExp2 = Nothing
End Sub
A+
 

Enerjp

XLDnaute Junior
Re : KML to Excel

Bonjour Davis84!

Merci pour ta réponse. Entre temps j'ai réussi à ouvrir mon ficher XML avec Excel.

Ta réponse est cependant très intéressante et me servira pour la suite.

Je suis également assez occupé par cette histoire mais posterai les résultats quand j’aurai quelque chose de propre et fonctionnel.

Merci pour ce jolie code^^

Cordialement

Jean-Philippe
 

Statistiques des forums

Discussions
312 503
Messages
2 089 055
Membres
104 013
dernier inscrit
VELONDAHY Mickaël