VBA Excel -> GeoJSON

Bonjour,

J'ai besoin de vos compétences en VBA : Peut-on automatiser la création (et la mise à jour) d'un fichier GeoJSON à partir d'un tableur Excel ? Le tableur et joint au topic. Le forum n'accepte pas les fichier geojson, donc vous pouvez le récupérer ici.

Il y a une tentative de VBA dans le fichier Excel, faite à partir d'infos trouvées sur Internet, mais ça n'est pas concluant, donc je préfère faire appel à des pointures

Merci d'avance pour votre aide !

48carteexemple.xlsm (17.78 Ko)

Bonjour,

Oui c'est tout à fait possible dès lors qu'on a en effet la structure, le fichier json étant un fichier texte.

Je m'y mettrai ce soir (au plus tard demain 5h) car je suis en déplacement cet apm ... sauf si qqun prend l'action.

Je m'y mettrai ce soir (au plus tard demain 5h) car je suis en déplacement cet apm ... sauf si qqun prend l'action.

Oh merci

En fait, voilà, il me restait une demi-heure ...

Sub JSON()
    Sheets("Liste écoles - Carte").Select
    Close #1
    Open ThisWorkbook.Path & "\" & ActiveSheet.Name & ".json" For Output As #1
    For Each cel In [DEBUT]
        Print #1, cel.Value
    Next
    For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        For Each cel In [MILIEU]
            If cel.Value Like "*COL*" Then
                col = Mid(cel.Value, InStr(cel.Value, "COL") + 3, 2)
                txt = Replace(cel.Value, "COL" & col, Cells(i, col * 1).Value)
                Print #1, txt
            Else
                Print #1, cel.Value
            End If
        Next
        If i <> Cells(Rows.Count, "A").End(xlUp).Row Then Print #1, ","
    Next
    For Each cel In [FIN]
        Print #1, cel.Value
    Next
    Close #1
End Sub
85carteexemple.xlsm (23.59 Ko)

Bonjour à tous,

Pour le fun.

Réalisé avec Récupérer et transformer (Power Query).

Ruban, Données, Récupérer et transformer, A partir d'un fichier, A partir d'un fichier json.

Cdlt.

68gab.xlsx (20.70 Ko)

Merci Steelson ! Je dois mettre quoi à la place de [DEBUT], [MILIEU] et [FIN] ?

Regarde l'onglet structure ... il s'agit de nom de zones

l'onglet structure ...

Mais oui mais c'est bien sûr ! Un onglet ! Je me disais bien aussi que c'était bizarre qu'il n'y ait pas de macro dans ce tableur de démo

Ça marche nickel ! MERCI

Désolé d'insister, mais j'ai une dernière demande et une remarque au cas où quelqu'un d'autre passe par là :

- J'aurais besoin que le fichier généré soit encodé en UTF-8 pour que les accents soient correctement interprétés par uMap et Framacarte.org.

- Dans le code proposé, il faut inverser latitude et longitude :

        "coordinates": [
         COL02,
         COL01

uMap les lit (et exporte) dans cet ordre, mais la conversion avec

place la latitude en colonne A et la longitude en colonne B...

- J'aurais besoin que le fichier généré soit encodé en UTF-8 pour que les accents soient correctement interprétés par uMap et Framacarte.org.

Essaie avec cette version. Les caractères sont bien en utf-8 (voir debugger) mais j'ai un doute sur l'enregistrement dans le fichier lui-même. Si cela ne fonctionne pas, je passerai par ADODB.Stream comme ici https://forum.excel-pratique.com/viewtopic.php?p=559654#p559654

83carteexemple.xlsm (25.24 Ko)

edit : j'ai fait un test avec

a priori c'est ok pour moi en unicode avec ma config

Essaie avec cette version.

Ça marche, merci ! Je ne sais pas pourquoi, ça ne fonctionnait pas dans mon fichier qui me disait : "Erreur de compilation: Sub ou Fonction non définie", mais en collant mon tableur dans ton fichier, ça fonctionne.

Merci encore !

Oui car il me semble avoir mis la conversion utf-8 dans un second module !

Oui, j'ai vu ça après coup. Merci encore pour le coup de main

Rechercher des sujets similaires à "vba geojson"