RechercheV dans un fichier non ouvert

Therusse

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je suis comptable pour plusieurs sociétés et je dois vérifier la liste des identifiants SIREN / SIRET, adresse, etc... de leurs fournisseurs, pour cela j'ai à disposition une extraction de la base fournisseurs de chacune des sociétés au format XLSX.

J'ai récupéré sur le site de l'INSEE l'intégralité des entreprises et établissements enregistrés en France dans un fichier au format CSV (8Go), j'ai scindé celui-ci à l'aide d'un petit soft (KFK) en 11 fichiers de 700Mo que j'ai retravaillé un par un pour ne garder que les informations qui m'intéressent et je les ai enregistré au format XLSX.


J'ai donc maintenant 11 fichiers "source"
 

Brice G

XLDnaute Occasionnel
Bonsoir Brice,

J'utilise une version entreprise d'Office 365 et j'ai presque trouvé la solution idéale avec PowerQuery, en fait j'appelle la feuille qui se trouve dans chaque fichier via une macro et je fais une recherchev dessus, puis je la ferme et je vais chercher la deuxième feuille toujours via la même macro et ainsi de suite jusqu'au dernier fichier.

Par contre j'ai un soucis dans l'exécution de cette macro car à chaque fois je suis obligé de d'aller dans les requêtes de connexions et supprimer manuellement la connexion à la feuille précédemment ouverte sinon la macro s'arrête en mode débogage, est-ce qu'il y a moyen de supprimer cette connexion automatiquement via vba ?

Bonsoir Therusse,

je comprends mal pourquoi passer par une macro. Avec l'outil d'édition de requêtes (=PowerQuery), pourquoi ne pas simplement faire une requête sur chacun de vos fichiers sources, certes vous aurez 11 feuilles différentes liées chacune à vos fichiers respectifs, mais vous ne le ferez qu'une fois. Décochez la màj automatique à l'ouverture, pour ne pas trop ralentir l'ouverture, et actualisez seulement lorsque nécessaire ?
Besoin d'un exemple ?:)
 

Therusse

XLDnaute Nouveau
Bonsoir Therusse,

je comprends mal pourquoi passer par une macro. Avec l'outil d'édition de requêtes (=PowerQuery), pourquoi ne pas simplement faire une requête sur chacun de vos fichiers sources, certes vous aurez 11 feuilles différentes liées chacune à vos fichiers respectifs, mais vous ne le ferez qu'une fois. Décochez la màj automatique à l'ouverture, pour ne pas trop ralentir l'ouverture, et actualisez seulement lorsque nécessaire ?
Besoin d'un exemple ?:)
Bonsoir Brice,

Je souhaitais passer par une macro parce que c'est une solution qui me semblait plus accessible et je ne maîtrise presque pas PowerQuery.

Mon problème est maintenant résolu car j'avais posté sur un autre forum et un contributeur m'a fourni la solution clé en main en utilisant les API du site de l'INSEE comme le suggérait Eric et Staples1600 je crois. Si vous êtes intéressé vous trouverez en pièce jointe un petit fichier exemple avec le code qui permet de récupérer ces fameuses informations.

Je remercie toutes les personnes qui ont suivi ce sujet pour leurs propositions, leurs idées et leurs explications.

Bonne soirée.
 

Pièces jointes

  • Recup_SIRET_json3.xlsm
    28.1 KB · Affichages: 25

Therusse

XLDnaute Nouveau
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

Bonsoir Pierre,

Merci pour toutes ces précisions et rectifications en ce qui concerne la source de l'API.

Bonne soirée.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour @Skadi,

Bienvenue sur le forum. Il est d'usage de ne pas 'squatter' les fils de discussion d'un autre, surtout s'il n'ont pas grand chose à voir.

Vous devez donc créer votre propre fil de discussion (bouton orangé en haut de la page listant les discussions du forum).

Cela vous permettra entre autre, d'indiquer votre version excel dans son titre.

cordialement
 

Statistiques des forums

Discussions
312 075
Messages
2 085 080
Membres
102 772
dernier inscrit
bluetesteur