Macro import kml (séparateur de décimal)

Suite à la question ci dessous, le séparateur décimal de ma feuille excel est une virgule je voudrais lors de l'import dans le fichier txt que ce séparateur devienne un point sans modifier le fichier excel. Est ce possible ?

Bonjour,

je suis en train de coder une petite macro qui permet d'exporter des coordonées GPS d'un fichier excel vers un fichier txt pour le lire sur maps.

Voici ou j'en suis

Sub convertir()

Dim Cible As Integer, x As Integer, y As Integer
Dim Resultat As String
Dim Cell As Range

'Définit la dernière ligne non vide dns la colonne A
x = Range("A65536").End(xlUp).Row

Cible = FreeFile

Open "D:\Mes documents\essais.txt" For Append As #Cible

For Each Cell In Range("B" & x)
    Rslt1 = "<name>" & Range("B" & x) & "</name>"

    Rslt2 = "<description>" & Range("A" & x) & "</description>"

    Rslt3 = "<Point><coordinates>" & Range("L" & x) & "," & Range("G" & x) & "</coordinates></Point>"
    Rslt4 = "</Placemark>"
    'Boucle sur les colonnes A à E
   ' For y = 0 To 4
       ' Rslt1 = Rslt1 & Cell.Offset(0, y) & Rslt1
   ' Next y

    Print #Cible, Rslt1, Rslt2, Rslt3, Rslt4

Next Cell

Close #Cible

End Sub

C'est un code que j'ai trouver sur internet et modifier selon mes besoins

Mon probème sont les suivant (eh oui j'en ai plusieurs)

1° en activant la macro voici le résultat que j'obtiens :

<name>MTMOR</name>          <description>MONTMORILLON</description>   <Point><coordinates>0,8785,46,4332</coordinates></Point>              </Placemark>

Voici le resultat que je souhaite:

<name>MTMOR</name>
<description>MONTMORILLON</description>
<Point><coordinates>0,8785,46,4332</coordinates></Point>
</Placemark>

Comment puis je coder les retours à la ligne sachant que dans le fichier excel ci joint les données sont toutes sur la même ligne

2

77import-kml.xlsm (16.58 Ko)

Salut le Forum

Sépare tes PRINT

Sub convertir()

    Dim Cible As Integer, x As Integer, y As Integer
    Dim Resultat As String
    Dim Cell As Range

    'Définit la dernière ligne non vide dns la colonne A
    x = Range("A65536").End(xlUp).Row

    Cible = FreeFile

    Open "D:\essais.txt" For Append As #Cible

    For x = 2 To x

        Rslt1 = "<name>" & Range("B" & x) & "</name>"
        Rslt2 = "<description>" & Range("A" & x) & "</description>"
        Rslt3 = "<Point><coordinates>" & Range("L" & x) & "," & Range("G" & x) & "</coordinates></Point>"
        Rslt4 = "</Placemark>"

        Print #Cible, Rslt1
        Print #Cible, Rslt2
        Print #Cible, Rslt3
        Print #Cible, Rslt4

    Next x

    Close #Cible

End Sub

Mytå

Merci beaucoup Mytå

J'ai un second problème

Dans mon fichier excel le separateur de décimal est une virgule je souhaiterais le remplacer par un point dans mon fichie txt mais garder la virgule pour séparer la latitude et la longitude

Rslt3 = "<Point><coordinates>" & Range("L" & x) & "," & Range("G" & x) & "</coordinates></Point>"

Ce que j'ai :

<Point><coordinates>0,8785,46,4332</coordinates></Point>

Ce que je voudrais obtenir :

<Point><coordinates>0.8785,46.4332</coordinates></Point>

quelqu'un aurait t'il une solution svp ?

Merci

Bonjour,

le pb c'est que dans ton fichier on a que des #VALEUR! en G et L...

2 possibilités :

  • dans les options avancées décocher temporairement 'utiliser les séparateurs système' et y mettre les séparateurs que tu veux.
  • ou pour Lx :
... & Int(Range("L" & x)) & "." & Split(Range("L" & x), ",")(1) & ...

eric

Rechercher des sujets similaires à "macro import kml separateur decimal"