Télécharger et scinder la base des numéros SIREN (base SIRENE)

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.

Logo INSEE

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.

Share Button
Description-fichier-stockunitelegale
Description-fichier-stockunitelegale
description-fichier-stockunitelegale.pdf
469 KiB
956 téléchargements
Détails...
The following two tabs change content below.
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.