ERIC S
XLDnaute Barbatruc
Bonjour le forum
pas habitué à manipuler JSON et les objets, je cherche, à partir d'infos trouvées sur un autre forum, à interroger la base SIREN (siret des entreprises) à partir d'Excel.
J'ai reçu de l'aide sur une première méthode mais je veux implémenter la seconde. Explication fonctionnement et pb rencontré
le fichier joint contient les 2 méthodes.
Feuille SIRENE = 1ère méthode, la feuille Brut visualise la réponse reçue en format Json.
en vba, le module API1 contient le code : une fonction qui récupère le JSON et une macro qui entre autres récupères les enregistrements (champs fields de l'objet records, appelé par VBACALLBYNAME
Feuille SIRENE V2 = utilisation d'une autre API d'Opendatasoft, la réponse est en BrutV2, le vba en module API2.
mon problème : les enregistrements sont dans le champs fields, qui se retouve dans record, lui-même dans records
il y a donc un étage de plus et je n'arrive pas à le franchir (en plus le debug sur les objets est null en vba), seul constat cela commence déjà à la ligne
Set Fld = VBA.CallByName(Rcd, "record", VbGet) où en survolant Fld je vois "nothing", donc j en'arrive pas à passer d'objet en objet pour arriver aux champs fields.
Quelqu'un peut-il m'expliquer le mécanisme à adopter pour cette seconde méthode pour utiliser vbacallbyname (je pourrais évidemment en vba analyser le texte affiché en brutv2 pour retrouver les enregistrements, mais comment procéder avec les objets
Merci
pas habitué à manipuler JSON et les objets, je cherche, à partir d'infos trouvées sur un autre forum, à interroger la base SIREN (siret des entreprises) à partir d'Excel.
J'ai reçu de l'aide sur une première méthode mais je veux implémenter la seconde. Explication fonctionnement et pb rencontré
le fichier joint contient les 2 méthodes.
Feuille SIRENE = 1ère méthode, la feuille Brut visualise la réponse reçue en format Json.
en vba, le module API1 contient le code : une fonction qui récupère le JSON et une macro qui entre autres récupères les enregistrements (champs fields de l'objet records, appelé par VBACALLBYNAME
Feuille SIRENE V2 = utilisation d'une autre API d'Opendatasoft, la réponse est en BrutV2, le vba en module API2.
mon problème : les enregistrements sont dans le champs fields, qui se retouve dans record, lui-même dans records
il y a donc un étage de plus et je n'arrive pas à le franchir (en plus le debug sur les objets est null en vba), seul constat cela commence déjà à la ligne
Set Fld = VBA.CallByName(Rcd, "record", VbGet) où en survolant Fld je vois "nothing", donc j en'arrive pas à passer d'objet en objet pour arriver aux champs fields.
Quelqu'un peut-il m'expliquer le mécanisme à adopter pour cette seconde méthode pour utiliser vbacallbyname (je pourrais évidemment en vba analyser le texte affiché en brutv2 pour retrouver les enregistrements, mais comment procéder avec les objets
Merci
Pièces jointes
Dernière édition: