La loi pour une République numérique (Loi n° 2016-1321 du 7 octobre 2016) a ouvert les bases de données SIRENE (principe de l’open data) à partir de janvier 2017.
Le site SIRENE (géré par l’INSEE) propose plusieurs bases de données en téléchargement intégral regroupant les données des millions d’entreprises françaises (SIREN) et de leurs établissements (SIRET). Depuis 1973, SIRENE a enregistré vingt millions d’entreprises et 28 millions d’établissements.
Le fichier “StockUniteLegale” détaille les informations SIREN (dénomination sociale, NIC, date de création, date de cessation…) des entreprises (unités légales) qu’elles soient en activité ou bien radiées. Elles sont utiles pour valider l’existence d’entreprises (numéros SIREN) et la cohérence des données comprises dans une base clients ou fournisseurs (à l’image d’un des objectifs poursuivis par PADoCC_Ecritures).
La version disponible au 1er octobre 2020 du fichier “StockUniteLegale” sur le site SIRENE pèse 651 Mo compressés et 2.7 Go une fois décompressée ; autant dire que, du fait de son volume, ce fichier est impossible à ouvrir dans Excel ou Access.
Le programme ci-dessous se propose de tronçonner la base SIREN en fichiers CSV de 800 milles lignes. Pour le lecteur pressé, le résultat de ce découpage peut être téléchargé directement depuis la page suivante.
'Découpage base SIRENE en fichiers de 800 mille lignes chacun 'B. RIVIERE 10/2020 Option Compare Database 'Activer la librairie Microsoft Scripting Runtime (Menu Outils / Références...) 'Définition des variables '---Fichier SIREN (source) Dim oFSOLect As Scripting.FileSystemObject Dim oFlLect As Scripting.File Dim oTxtLect As Scripting.TextStream '---Fichier SIREN découpé (destination) Dim oFSOEnreg As FileSystemObject Dim oTxtEnreg As TextStream '---Variables compteurs Dim i As Long 'position dans le fichier destination (n° de ligne) Dim j As Long 'n° de fichier destination Sub Lecture_SIREN() 'Instanciation du FSO Lecture Set oFSOLect = New Scripting.FileSystemObject Set oFlLect = oFSOLect.GetFile("C:\Lecture SIREN\StockUniteLegale_utf8.csv") Set oTxtLect = oFlLect.OpenAsTextStream(ForReading) 'Le premier fichier portera le n° 1 j = 1 'Boucle While... Wend : tant que la fin du fichier source n'est pas atteinte (.AtEndOfStream) While Not oTxtLect.AtEndOfStream 'Instanciation du FSO Enregistrement (destination) Set oFSOEnreg = New FileSystemObject Set oTxtEnreg = oFSOEnreg.CreateTextFile("C:\Lecture SIREN\SIREN " & j & ".csv", True) '-> True : écrase le fichier destination (Overwrite) s'il existe déjà 'Reporte le nom des champs (entête) du fichier source dans les fichiers destination >1 If j > 1 Then oTxtEnreg.WriteLine "siren,statutDiffusionUniteLegale,unitePurgeeUniteLegale,dateCreationUniteLegale,sigleUniteLegale,sexeUniteLegale,prenom1UniteLegale,prenom2UniteLegale,prenom3UniteLegale,prenom4UniteLegale,prenomUsuelUniteLegale,pseudonymeUniteLegale,identifiantAssociationUniteLegale,trancheEffectifsUniteLegale,anneeEffectifsUniteLegale,dateDernierTraitementUniteLegale,nombrePeriodesUniteLegale,categorieEntreprise,anneeCategorieEntreprise,dateDebut,etatAdministratifUniteLegale,nomUniteLegale,nomUsageUniteLegale,denominationUniteLegale,denominationUsuelle1UniteLegale,denominationUsuelle2UniteLegale,denominationUsuelle3UniteLegale,categorieJuridiqueUniteLegale,activitePrincipaleUniteLegale,nomenclatureActivitePrincipaleUniteLegale,nicSiegeUniteLegale,economieSocialeSolidaireUniteLegale,caractereEmployeurUniteLegale" 'la première ligne à écrire i = 1 'Boucle While... Wend : tant que la 800 millième ligne du fichier destination, ni la fin du fichier source n'est pas atteinte... While Not oTxtLect.AtEndOfStream And i < 800000 oTxtEnreg.WriteLine oTxtLect.ReadLine 'On passe à la ligne suivante i = i + 1 Wend 'Retour au début de la boucle oTxtEnreg.Close 'On passe au fichier destination suivant j = j + 1 Wend oTxtLect.Close End Sub
La documentation téléchargeable ci-après détaille le contenu de chaque champ de données du fichier SIREN.
Approfondir le sujet : VBA.
Derniers articles parBenoît RIVIERE (voir tous)
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024
- VBA/SQL vs Power Query : deux solutions complémentaires - mercredi 2 octobre 2024