Bonjour à tous,
Quelques précisions sur le code que j'ai proposé à TheRusse (sur l'autre forum) :
* ce n'est pas l'API de l'Insee, mais l'API de data.opendatasoft.com que j'utilise.
Les données sont également régulièrement mises à jour, mais les conditions d'utilisation ne sont pas tout à fait les mêmes.
* pourquoi la ligne "nb = 3" ? (plutôt qu'un classique : .Cells(Rows.Count, 1).End(xlUp).Row) :
En fait pour un fichier de 3000 lignes, le traitement pour la totalité des lignes en "une passe" peut saturer la mémoire (d'un PC ordinaire) et peut bloquer Excel. Pour contourner le problème j'ai préféré proposé un traitement de blocs de lignes par blocs de ligne. Pour les tests "nb=3" convient. Pour une "vraie" utilisation on peut avoir nb=20 ou même 30 en fonction de la capacité du PC utilisé.
* pourquoi interroger un site à distance plutôt qu'un (ou plusieurs) fichier téléchargé?
La raison est simple : les données du site data.opendatasoft.com (ou de l'Insee) sont mises à jour. Et les entreprises évoluent rapidement (ouverture/fermeture/...)
* à noter, on peut récupérer davantage d'info sur chaque entreprise. La liste des mots-clés est longue => cf data.opendatasoft.com ou Insee
Enfin, je poste ici la dernière version du fichier qui permet de récupérer des info en fonction du SIRET OU du SIREN, au choix.
* dans le cas du SIREN on obtient un résultat qui peut être multiligne dans une même cellule (voir exemple).
/!\ par défaut data.opendatasoft limite à 10 le nb de lignes max. En cas de besoin, il serait nécessaire de modifier la requête pour dépasser cette limite.
* côté "code" : à noter l'utilisation de fonctions javascript dans le VBA pour décoder le json
Pierre