[RESOLU] Application Excel vers KML pour GIS

Enerjp

XLDnaute Junior
Bonjour tout le monde,

Je suis en train de réaliser une macro pour convertir un tableau Excel en KML (le format XML lu par Google Earth, de manière à placer rapidement plein de points sur Google Earth ou autre GIS à partir d'un fichier excel contenant les coordonnées).

La macro écrit le code dans un fichier avec un For "Output" et va transcrire les points avec une boucle For.

Alors ça marche très bien, seulement j'aimerai bien "raffiner" un peu la chose.

Il est possible d'avoir plusieurs fichier dans un KML de manière à afficher les points selon des critères communs (voir image en exemple)

Je souhaite donc que la macros ouvre une borne (<Folder><Name> "nom du groupe 1" </Name>) , qu"il continue la boucle en écrivant les points correspondants au groupe 1 puis une fois tous "Outputé" referme la borne ( </Folder> ).
Puis qu'il continue pour les autres groupes (ils y en a 8 au maximum pour le moment).

:eek:Voili voilou, n'hésitez pas si il vous faut plus de renseignement et merci d'avance pour votre aide.

Enerjp
 

Pièces jointes

  • ExImage.JPG
    ExImage.JPG
    61.4 KB · Affichages: 461
  • KML.xlsm
    62.5 KB · Affichages: 521
Dernière édition:

Enerjp

XLDnaute Junior
Re : Conditions d'écriture pour programme d'encodage KML

Bon et bien j'ai trouver une solution, mais le code est vraiment long.

Sauriez-vous me montrer comment fixer tout les trucs répété en temps que variable
(par exemple :
Code:
            pmName = cell.Offset(0, 0)
            longitudeValue = cell.Offset(0, 4)
            latitudeValue = cell.Offset(0, 5)
            pmDescription = cell.Offset(0, 6)
            pmIcone = cell.Offset(0, 7)

ou

outputText = [data!C8] & pmName & [data!C9] & "#" & pmIcone & [data!C10] & longitudeValue & ", " & latitudeValue & [data!C11] & pmDescription & [data!C12]
            Print #1, outputText
) Merci d'avance, le code est toujours : 4448
 

Pièces jointes

  • ExcelToKML.1.xlsm
    81.1 KB · Affichages: 320
Dernière édition:

Enerjp

XLDnaute Junior
Re : Conditions d'écriture pour programme d'encodage KML

RE !

Bien voila une version amélioré. Le code est toujours améliorable à mon goût, mais bon.

Alors il permet:

- de placer jusqu’à 1000 points sur carte avec plusieurs champs de descriptions (un nom visible au dessus de l’icône et 3 paragraphe dans l'info bulle(les coordonnées seuls suffisent pour placer les points)) à partir de coordonnées en degrés décimaux.

- de repartir les points en 8 groupes que l'ont peut personnaliser avec l'icone de son choix (via URL) de manière à trier les points.

- d'encodé les accents et caractères basiques en UTF-8 (et vis-versa) pour la comptabilité avec certains sites utilisant le KML en UTF-8 et l'ouverture du Kml crée avec Excel pour récupéré les données.

PS: vous pouvez largement augmenter le nombre de groupes ou de points, voir rajouter des balise si vous touchez un peu le KML.

N’hésitez pas si vous avez des questions ou si vous savez améliorer le code,

Cordialement enerjp.
 

Pièces jointes

  • ExcelToKML.xlsm
    132.2 KB · Affichages: 553
Dernière édition:

david84

XLDnaute Barbatruc
Re : [RESOLU] Application Excel vers KML pour GIS

Bonsoir,
j'ai ouvert ton fichier pour voir , déverroullé la feuille Données, entré un chemin en B1 et un nom en B2 de la feuille et appuyé sur Générer fichier. Cela plante à
Code:
    'ecrire l'en tête
    outputText = [data!C5] & docName & [data!C6]
Je pense qu'un petit mode d'emploi expliquant pas à pas ce que l'utilisateur doit faire ne serait pas de trop.
De plus il est plus simple de placer sur le forum un classeur sans protection à ôter.
A+
 

Enerjp

XLDnaute Junior
Re : [RESOLU] Application Excel vers KML pour GIS

Bonjour,

Le problème vient du format de la date en C3 feuille "data", je l'ai pas fait sur une version française d'excel, mais c'est bizzard. Essai ça:

=(Données!B2&" du "&TEXTE(B1;"jj/mm/aaaa hh:mm"))

Je m'excuse pour le verouillage, c'est deuxième programme +/- complet que je fait et je voulais essayer quelques trucs^^.
Je rédigerai bientôt les explications, pour le géocodage aussi, mais c'est pas non plus totalement fini.
 

Enerjp

XLDnaute Junior
Re : [RESOLU] Application Excel vers KML pour GIS

Bonjour,

Alors bonne nouvelle, j'ai rédigé un petit explicatif
Mauvaise nouvelle y fait 520 ko... donc si vous le voulez donnez moi votre adresse mail en MP et je vous envoie ça.
Ou si vous connaissez un moyen de réduire la taille (sans bidouiller les images ou perdre du temps) genre le mettre en pdf ou quelque chose comme ça...
Sans réponse je mettrai des screen-shots (Mouhahaha !!)

Cordialement
enerjp
 

Enerjp

XLDnaute Junior
Re : [RESOLU] Application Excel vers KML pour GIS

Ce lien n'existe plus

voila, désolé de vous spamer comme ça^^.

Si vous trouvez des choses à redire sur les explications ou le programme n'hésitez pas, ça finira dans mon projet de fin d'étude alors même si on ne peut pas atteindre la perfection. Ce n'est que par vos critiques que je pourrait m'en rapprocher^^

Cordialement Enerjp
 

david84

XLDnaute Barbatruc
Re : [RESOLU] Application Excel vers KML pour GIS

Re
J'ai tenté de suivre la procédure décrite dans ton mode d'emploi et j'arrive à enregistrer un fichier au format klm à partir de ton fichier Excel mais après je bloque : comment t'y prends-tu ensuite pour ouvrir ce fichier et quelles sont les différentes étapes pour l'afficher dans Google Earth par exemple ?
Ceci dit, je trouve ta procédure assez complexe...pourquoi passer par la création d'un fichier klm à partir d'un fichier Excel alors que Google Earth semble accepter les fichiers Excel (xls, xlsx, xlsm) ?
Je n'ai pas dû tout comprendre...
A+
 

Enerjp

XLDnaute Junior
Re : [RESOLU] Application Excel vers KML pour GIS

Google E. lit les fichiers excel?! Peux tu me mettre un lien?
Pour ouvrir le fichier, tu fais clique droit, ouvrir avec Google earth. Pour les autre Gis, tu importes le fichier.
 

david84

XLDnaute Barbatruc
Re : [RESOLU] Application Excel vers KML pour GIS

Re
Google E. lit les fichiers excel?! Peux tu me mettre un lien?
je n'ai pas testé mais je n'ai fait que lire l'un des liens placés sur ton document Word. Il y est écrit
Sélectionnez un fichier Excel (xls, xlsx, xlsm, xlsb, txt, csv ou)
.
Pour ouvrir le fichier, tu fais clique droit, ouvrir avec Google earth
Lorsque je fais un clic droit sur le fichier kml, Google Earth n'est pas proposé. Je vais regarder comment faire.
A+
 

Enerjp

XLDnaute Junior
Re : [RESOLU] Application Excel vers KML pour GIS

Question bête mais t'as Google Earth au moins^^.
C'est bizarre, et as-tu essayé de l’ouvrir depuis GE?
Au pire si tu as un compte google tu peut l'importer sur Google Map :Essai - Google Maps
Ou sur d'autres sites utilisant le KML.

Et oui... le fichier qu'il te donne est même plus complet mais aussi plus compliqué, je devais faire un truc réutilisable facilement. Même si bon c'est pas encore au point^^

Cordialement
enerjp
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : [RESOLU] Application Excel vers KML pour GIS

Re
Question bête mais t'as Google Earth au moins^^.
C'est bizarre, et as-tu essayé de l’ouvrir depuis GE?
en l'ouvrant via GE cela fonctionne effectivement mais cette procédure n'est apparemment pas expliquée sur ton mode d'emploi.
Et oui... le fichier qu'il te donne est même plus complet mais aussi plus compliqué, je devais faire un truc réutilisable facilement. Même si bon c'est pas encore au point^^
et si tu nous expliquais concrètement ce que tu cherches à faire et le but de tout cela ?
Peut-être qu'il existe des solutions plus simple que nous pourrions t'indiquer, tout du moins des pistes de travail.
A+
 

Enerjp

XLDnaute Junior
Re : [RESOLU] Application Excel vers KML pour GIS

Et maintenant tu peux les ouvrir directement? Sans passer par GE?

Le but est d'avoir une petite interface pour pouvoir visualiser plusieurs groupes de points avec des renseignements sur une carte. Ce juste en géocodant préalablement ses adresses. Et de pouvoir modifier les données rapidement bien sur^^.
En tout cas merci pour les commentaire, j'agis déjà quelques correction à faire.
 

david84

XLDnaute Barbatruc
Re : [RESOLU] Application Excel vers KML pour GIS

Re
Et maintenant tu peux les ouvrir directement? Sans passer par GE?
Maintenant, je peux faire un clic droit sur le fichier klm=>ouvrir avec=>GE
Le but est d'avoir une petite interface pour pouvoir visualiser plusieurs groupes de points avec des renseignements sur une carte. Ce juste en géocodant préalablement ses adresses. Et de pouvoir modifier les données rapidement bien sur^^.
Est-ce pour toi ou dans un but professionnel ?

Dans ton fichier Excel les latitude et longitude sont présentes, donc question : comment fais-tu pour les trouver ?
Cette procédure est-elle opérationnelle dans ton fichier excel (as-tu une routine qui te fait le travail) ou dois-tu le faire à part, adresse par adresse et recopier le tout dans ton fichier ?

Autre question : Es-tu obligé d'utiliser GE ou pas ? Regarde ici par exemple le travail de Didier Fourgeot sur son site myDearFriend (les articles et son fichier xlMap v2).
Lui passe par Bing Map (anciennement Virtual Earth) et utilise un WebBrowser, comme cela tout se passe dans le fichier Excel et tu n'as pas besoin de passer par un fichier Excel=>fichier klm=>GE.
Je ne veux pas t'amener sur une fausse piste, simplement essayer de comprendre le but de ce travail et t'ouvrir éventuellement d'autres pistes.
A+

Edit : je viens de faire le test : tu peux directement ouvrir un fichier Excel dans GE à partir du moment où les données placées dans ce fichier sont positionnées comme indiqué ici
 
Dernière édition:

Enerjp

XLDnaute Junior
Re : [RESOLU] Application Excel vers KML pour GIS

OK super,

Oui et non, je suis en stage, c'est aussi pour cela que les explication sont longues, j'ai l'intention de les mettre en annexe de mon rapport de stage. Le but du stage est de réaliser des plans stratégiques pour l'économie d"énergie de communes.

Le géocodage est expliqué, je passe par les sites de géocodage présents dans le fichier, mais non, le programme ne le fait pas, je ne suis pas encore assez costaud en VBA pour dire au programme, envoies le fichier sur le site, puis, intègres les au fichier, mais le sais que c'est possible.

Oui le programme de M. Didier Fourgeot est impressionnant, mais je ne crois pas qu'il permet de trier par groupe, c'est pour ca que je suis passé à autre chose.

Edit : je viens de faire le test : tu peux directement ouvrir un fichier Excel dans GE à partir du moment où les données placées dans ce fichier sont positionnées comme indiqué ici

.... Haaaa !!! ^^, bref au moins j’aurai fait des progrès en Vba...

Bien le problème pour le moment c'est que j'ai beaucoup d'autre choses à faire, mais j’essayerai cette solution qui est peut être plus complète.
En tout cas merci je vous tiens au courant de l'avancement.
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg