Bonjour,

Je voudrais faire un fichier Json à partir de données contenus sur une feuille.
de ce type avec une hiréarchisation (noeuds, sous class ...)
Code JSON : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   {
      "Sols": [
         {
         "ID": "Montagne",
         "donnees": [
                "Couleur": 8421504,
                "Accessible": "Non",
                "Bloque_vue": "Oui",
                "Vitesse": 0
              ]
         },
         "ID": "Foret",
         "donnees": [
                "Couleur": 5287936,
                "Accessible": "Oui",
                "Bloque_vue": "Oui",
                "Vitesse": 0
              ]
         },

J'ai trouvé ce code, il fonctionne, mais cela ne convient pas, je n'arrive par à faire des noeuds. je pensais partir de la et arriver à le modifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim jsonCarte As New Collection
    Dim jsonSols As New Collection
    Dim jsonDictionary As New Dictionary
    Dim jsonFileObject As New FileSystemObject
    Dim jsonFileExport As TextStream
    maxY = 2
    While Worksheets("Sols").Cells(maxY, 1).Interior.Color <> couleurFin
        jsonDictionary("ID") = Worksheets("Sols").Cells(maxY, 2).Value
        jsonDictionary("Couleur") = Worksheets("Sols").Cells(maxY, 1).Interior.Color
        jsonDictionary("Accessible") = Worksheets("Sols").Cells(maxY, 3).Value
        jsonDictionary("Bloque_vue") = Worksheets("Sols").Cells(maxY, 4).Value
        jsonDictionary("Vitesse") = Worksheets("Sols").Cells(maxY, 5).Value
 
        jsonSols.Add jsonDictionary
        Set jsonDictionary = Nothing
 
        maxY = maxY + 1
    Wend
 
    txt = ThisWorkbook.Path & "\sols.json"
    Set jsonFileExport = jsonFileObject.CreateTextFile(txt, True)
    jsonFileExport.WriteLine (JsonConverter.ConvertToJson(jsonSols, Whitespace:=3))
Voici le résultat obtenu :
Code JSON : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[
   {
      "ID": "Montagne",
      "Couleur": 8421504,
      "Accessible": "Non",
      "Bloque_vue": "Oui",
      "Vitesse": 0
   },
   {
      "ID": "Foret",
      "Couleur": 5287936,
      "Accessible": "Oui",
      "Bloque_vue": "Oui",
      "Vitesse": 0.5
   },

Si vous avez une idée ça serai super

Par avance merci