Importer en json dans Excel

Bravo Pierre, le pape du json ...

Je suis assez d'accord

J'ai donc commencé mon premier code, tout s'affiche bien dans la fenêtre d’exécution,

19060202311541503

mais quand je veux affiché les données sur une feuille je n'ai que la dernière ligne

190602022519982838

Voici le code que j'ai saisie

Sub Calten_2()
Dim DataSet As Object, Prg As Object, Elem As Object, Elem2 As Object, lg As Integer
Dim site As String, i As Long
    With Sheets("Feuil1")
        Set DataSet = Rcdst_Jsn(.Range("A1").Value)
        Set Prg = DataSet.programme
        'Debug.Print Prg.dateProgrammeActif
        Sheets("Feuil1").Range("A5") = Prg.dateProgrammeActif
        Sheets("Feuil1").Range("B5") = Prg.timezoneOffset
        'Debug.Print Prg.timezoneOffset
        'etc ...
        i = 5
        For Each Elem In Prg.reunions
        .Cells(i, 4).Value = Elem.hippodrome.libelleCourt
        .Cells(i, 5).Value = Elem.hippodrome.libelleCourt
        'Debug.Print Elem.hippodrome.libelleCourt
            'etc ...
            For Each Elem2 In Elem.courses
            .Cells(i, 6).Value = Elem2.libelle
                'Debug.Print Elem2.libelle
               'etc ...
               Next Elem2
          'etc ...
        Next Elem
    End With
    Set DataSet = Nothing
    Set Prg = Nothing
End Sub
Function Rcdst_Jsn(site As String) As Object
Dim ScriptControl As Object

    Set ScriptControl = CreateObject("MSScriptControl.ScriptControl")
    ScriptControl.Language = "JScript"

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", site, False
        .send
        Set Rcdst_Jsn = ScriptControl.Eval("(" & .responsetext & ")")
    End With
End Function

Et donc j'ai comme résultat ceci :

190602022519982838

Comment procéder pour avoir toutes les courses et tous les hippodromes etc...?

Merci d'avance

@Calten:

Ici dans le code exemple le Debug.Print affiche le résultat dans la fenêtre exécution du VBA (Ctrl+G), il est simple de l'écrire dans des cellules d'une feuille quelconque (sans oublier d'incrémenter le n° le ligne au fur et à mesure des For Each), voir les exemples précédents.

@Steelson : tu assures bien aussi sur ce sujet!

@Calten:

Ici dans le code exemple le Debug.Print affiche le résultat dans la fenêtre exécution du VBA (Ctrl+G), il est simple de l'écrire dans des cellules d'une feuille quelconque (sans oublier d'incrémenter le n° le ligne au fur et à mesure des For Each), voir les exemples précédents.

@Steelson : tu assures bien aussi sur ce sujet!

Donc si je veux les uns à la suite des autres il faut que j'écrive :

i = 5

For Each Elem In Prg.reunions

.Cells(i, 4).Value = Elem.hippodrome.libelleCourt

i = 6

For Each Elem In Prg.reunions

.Cells(i, 4).Value = Elem.hippodrome.libelleCourt

I serait la ligne et Cell la cellule

Donc j'aurais ligne 5 un hippodrome et ligne 6 un autre, mais par exemple si il y à 8 hipodromes et que mon code s'arrête à i = 7 je n'ai pas le 8 ème ...

Ici dans le code exemple le Debug.Print affiche le résultat dans la fenêtre exécution du VBA (Ctrl+G), il est simple de l'écrire dans des cellules d'une feuille quelconque (sans oublier d'incrémenter le n° le ligne au fur et à mesure des For Each), voir les exemples précédents.

lg = lg + 1

Oui pierrep56, j'ai relu le post merci, voilà j'ai tapé ce code:

 lg = 7
        For Each Elem In Prg.reunions
        .Range("A" & lg).Value = Elem.hippodrome.libelleCourt
         lg = lg + 1
         'etc ...
            For Each Elem2 In Elem.courses
            .Range("B" & lg).Value = Elem2.libelle

            lg = lg + 1

J'ai les données en colonne comme il faut, merci beaucoup.

Rechercher des sujets similaires à "importer json"