{"id":11941,"date":"2024-05-27T06:58:19","date_gmt":"2024-05-27T04:58:19","guid":{"rendered":"https:\/\/www.auditsi.eu\/?p=11941"},"modified":"2024-04-27T14:24:43","modified_gmt":"2024-04-27T12:24:43","slug":"excel-collecter-des-donnees-juridiques-sur-les-entreprises-avec-lapi-sirene-2eme-partie-base-siret-etablissements","status":"publish","type":"post","link":"https:\/\/www.auditsi.eu\/?p=11941","title":{"rendered":"Excel : collecter des donn\u00e9es juridiques sur les entreprises avec l&#8217;API SIRENE &#8211; 2\u00e8me partie : base SIRET (\u00e9tablissements)"},"content":{"rendered":"<p style=\"text-align: justify;\">Dans un monde \u00e9conomique aussi mouvant o\u00f9 les crises de succ\u00e8dent aussi rapidement, les entreprises ont besoin d\u2019<strong>obtenir et de maintenir des informations<\/strong> financi\u00e8res et juridiques, fiables et en permanence \u00e0 jour, <strong>sur leurs partenaires<\/strong> (clients, fournisseurs\u2026). Que ce soit pour cr\u00e9er ou mettre \u00e0 jour des fiches tiers (outil strat\u00e9gique dans le cadre de la d\u00e9mat\u00e9rialisation de la facturation, documentation de la conformit\u00e9 Sapin 2), accorder du cr\u00e9dit \u00e0 des clients actuels ou nouveaux (\u00e9valuation du risque de d\u00e9faillance, solvabilit\u00e9\u2026).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11948\" src=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/API-SIRENE-SIRET-XL.png\" alt=\"API SIRENE SIRET XL\" width=\"921\" height=\"483\" srcset=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/API-SIRENE-SIRET-XL.png 921w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/API-SIRENE-SIRET-XL-300x157.png 300w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/API-SIRENE-SIRET-XL-768x403.png 768w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/API-SIRENE-SIRET-XL-730x383.png 730w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/p>\n<p style=\"text-align: justify;\">Le r\u00e9pertoire SIRENE (Syst\u00e8me Informatique pour le R\u00e9pertoire des ENtreprises et des Etablissements) dont la gestion est confi\u00e9e \u00e0 l\u2019INSEE permet de t\u00e9l\u00e9charger ses donn\u00e9es notamment sous forme de fichier texte. L\u2019INSEE est ainsi charg\u00e9 d\u2019<strong>identifier les entreprises au sens large<\/strong> et plus pr\u00e9cis\u00e9ment les entrepreneurs individuels, les personnes morales soumises au droit commercial, les institutions et services de l\u2019\u00c9tat et les collectivit\u00e9s territoriales, certaines associations. Toutes les mises \u00e0 jour d\u2019entreprises et d\u2019\u00e9tablissements (cr\u00e9ations, modifications, cessations) enregistr\u00e9s dans SIRENE proviennent des informations d\u00e9claratives des entreprises aupr\u00e8s du Guichet Unique et de certains Centres de Formalit\u00e9s des Entreprises (CFE).<\/p>\n<p style=\"text-align: justify;\">Le r\u00e9pertoire SIRENE est <strong>interrogeable par API<\/strong> (<em>Application Programming Interface<\/em> ou interface de programmation applicative) \u00e0 partir d&#8217;un <strong>num\u00e9ro SIREN (entreprise ou unit\u00e9 l\u00e9gale)<\/strong> ou d&#8217;un <strong>SIRET (\u00e9tablissement d&#8217;une entreprise)<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Une API assure l\u2019<strong>interface entre deux syst\u00e8mes<\/strong>. Par exemple, les logiciels de paye t\u00e9l\u00e9transmettent les D\u00e9clarations Sociales Nominatives (DSN) vers les serveurs de l\u2019\u00c9tat par l\u2019interm\u00e9diaire d\u2019une API. Le fonctionnement d\u2019une API est simple. Un logiciel envoie une&nbsp;<strong>requ\u00eate \u00e0 un site internet<\/strong>&nbsp;ou \u00e0 un autre logiciel par le biais de son API. Le site internet ex\u00e9cute la requ\u00eate, interroge ses bases de donn\u00e9es et renvoie le r\u00e9sultat au logiciel, qui int\u00e8gre les donn\u00e9es re\u00e7ues dans son processus de calcul. Les API assurent ainsi l\u2019interaction entre des logiciels d\u2019\u00e9diteurs diff\u00e9rents.<\/p>\n<p style=\"text-align: justify;\"><em><strong>&gt;&gt;&gt;<\/strong><\/em> Pour aller plus loin : Le principe de la diffusion en ligne avec autorisation de rediffusion gratuite (ou&nbsp;<em>open data<\/em>) des donn\u00e9es du registre national du commerce et des soci\u00e9t\u00e9s (RNCS, fourni par l\u2019INPI) et du <strong>fichier SIRENE<\/strong> (fourni par l\u2019INSEE) a \u00e9t\u00e9 act\u00e9 par la loi Macron du 6 ao\u00fbt 2015. Le site Data Inpi, lanc\u00e9 en d\u00e9cembre 2019, a mis en oeuvre la diffusion de ces donn\u00e9es. L\u2019INPI propose d\u00e9sormais une <strong>API<\/strong> ainsi qu\u2019un <strong>FTP<\/strong>. A partir de ces moyens de diffusion, tout op\u00e9rateur priv\u00e9 a la possibilit\u00e9 d\u2019int\u00e9grer ces donn\u00e9es dans ses propres produits, commerciaux ou gratuits, et de les rediffuser \u00e0 sa guise. Plusieurs acteurs priv\u00e9s ont commenc\u00e9 \u00e0 occuper ce nouveau champ des possibles, \u00e0 l\u2019image de <a title=\"T\u00e9l\u00e9charger gratuitement les documents juridiques et les comptes des soci\u00e9t\u00e9s avec le site Pappers.fr\" href=\"https:\/\/www.auditsi.eu\/?p=9178\">Pappers<\/a>&nbsp;ou de <a href=\"https:\/\/www.auditsi.eu\/?p=9421\">Soci\u00e9t\u00e9.Ninja<\/a>.<\/p>\n<p style=\"text-align: justify;\">Le pr\u00e9sent article propose au lecteur de <strong>cr\u00e9er un classeur Excel dot\u00e9 d&#8217;un code VBA qui interroge le r\u00e9pertoire SIRENE<\/strong>. Il sera compos\u00e9 de <strong>deux parties<\/strong> :<\/p>\n<ul>\n<li><a href=\"https:\/\/www.auditsi.eu\/?p=11785\">Interrogation de la base entreprises (SIREN)<\/a> ;<\/li>\n<li>Interrogation de la base \u00e9tablissements (SIRET) (\u00e0 lire ci-apr\u00e8s).<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong><em>Pr\u00e9requis : obtention d\u2019une clef d\u2019identification :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">Pour utiliser l\u2019API SIRENE, il est n\u00e9cessaire d\u2019obtenir gratuitement une <strong>clef d\u2019identification (token)<\/strong> \u00e0 ins\u00e9rer dans le code <a class=\"glossaryLink\" href=\"https:\/\/www.auditsi.eu\/?glossary=vba\" aria-describedby=\"tt\" data-cmtooltip=\"<\/p>\n<div class=glossaryItemTitle>VBA<\/div>\n<div class=glossaryItemBody>&amp;lt;p style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Visual Basic for Applications (VBA) est un langage de programmation, d\u00e9riv\u00e9 du langage Basic, int\u00e9gr\u00e9 dans toutes les applications de la suite bureautique Microsoft Office. Il permet d&amp;#039;automatiser des t\u00e2ches r\u00e9p\u00e9titives, de contr\u00f4ler les logiciels Office&#8230;&amp;lt;\/p&amp;gt;<br \/>\n&amp;lt;p style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Initiation au VBA :&amp;lt;\/p&amp;gt;&amp;lt;br \/&amp;gt;&amp;lt;ul&amp;gt;<br \/>\n&amp;lt;li style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Cr\u00e9ez votre premier programme VBA \u00e0 l\u2019aide de l\u2019enregistreur de macros&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Cr\u00e9er une fonction en VBA&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Affecter une macro \u00e0 un bouton de commande&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Enregistrer un classeur contenant une macro VBA&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Acc\u00e9der \u00e0 l\u2019environnement de d\u00e9veloppement VBA d\u2019ACCESS&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Conversion d\u2019une valeur num\u00e9rique en une cha\u00eene de caract\u00e8res&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Calculer le dernier jour d\u2019un mois&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Les calculs matriciels en VBA&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Affichage de messages avec la fonction MsgBox&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Variables : les types de donn\u00e9es&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Les op\u00e9rateurs&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Les op\u00e9rateurs arithm\u00e9tiques&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Les op\u00e9rateurs de comparaison&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Les op\u00e9rateurs logiques (ou bool\u00e9ens)&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Tests conditionnels avec la structure Select Case\u2026 End Select&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Cr\u00e9er un tableau crois\u00e9 dynamique&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Formater l\u2019affichage des nombres&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Obtenir un nom de fichier avec la bo\u00eete de dialogue GetOpenFilename&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Naviguer dans l\u2019arborescence d\u2019un disque dur pour acc\u00e9der \u00e0 un dossier situ\u00e9 en amont&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Cr\u00e9er un lien hypertexte&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Automatiser l\u2019impression des feuilles de calcul&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Changer la couleur des onglets d\u2019un classeur&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Le copier \/ coller \u00e0 toutes les sauces&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Supprimer les doublons d\u2019une liste&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Programmer des requ\u00eates SQL dans des macros VBA&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Cr\u00e9er et supprimer des requ\u00eates ACCESS&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Tester l\u2019existence d\u2019un objet ACCESS (requ\u00eate, table\u2026)&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Ecrire dans un classeur Excel depuis Access&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;\/ul&amp;gt;<br \/>\n&amp;lt;p style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Optimisation du code : Manipuler des plages de cellules dans des variables tableaux&amp;lt;\/p&amp;gt;<br \/>\nQuelques cas pratiques :<br \/>\n&amp;lt;ul&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Analyser le Fichier des Ecritures Comptables (FEC)&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Exporter des donn\u00e9es Excel dans un fichier CSV&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Importer un fichier texte dans Excel&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Comptes consolid\u00e9s : calculer les pourcentages d\u2019int\u00e9r\u00eat \u00e0 l\u2019aide du calcul matriciel et du langage VBA d\u2019Excel (article publi\u00e9 dans la RFC)&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Le contr\u00f4le des comptes \u00e0 l\u2019aide du langage VBA d\u2019Excel (article publi\u00e9 dans la RFC) (exemple sur le contr\u00f4le des stocks)&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Contr\u00f4ler la validit\u00e9 d\u2019un num\u00e9ro de S\u00e9curit\u00e9 sociale&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Agr\u00e9gation automatis\u00e9e de donn\u00e9es comptables de filiales au sein d\u2019un groupe (\u00ab reporting \u00bb)&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Valoriser un stock selon la m\u00e9thode du PEPS (FIFO) \u00e0 partir des mouvements d\u2019une r\u00e9f\u00e9rence donn\u00e9e&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;li&amp;gt;Automatisation du formatage des donn\u00e9es num\u00e9riques&amp;lt;\/li&amp;gt;<br \/>\n&amp;lt;\/ul&amp;gt;<\/div>\n<p>&#8221; data-gt-translate-attributes=&#8221;[{&quot;attribute&quot;:&quot;data-cmtooltip&quot;, &quot;format&quot;:&quot;html&quot;}]&#8221;>VBA<\/a> apr\u00e8s inscription (cr\u00e9ation d\u2019un compte) sur le <a href=\"https:\/\/api.insee.fr\/\" target=\"_blank\" rel=\"noopener\">site des API SIRENE<\/a>. Sans ce <em>token<\/em>, le code VBA et le classeur Excel seront inop\u00e9rants. Plus de d\u00e9tails : <a href=\"https:\/\/www.auditsi.eu\/?p=11785\">cliquer ici<\/a>.<\/p>\n<p style=\"text-align: justify;\"><em><strong>Le code VBA :<\/strong><\/em><\/p>\n<p style=\"text-align: justify;\">Le code VBA est pour une bonne part commun \u00e0 celui de SIREN (<a href=\"https:\/\/www.auditsi.eu\/?p=11785\">cf la 1\u00e8re partie de cet article<\/a>) et pr\u00e9sente quelques particularit\u00e9s marginales li\u00e9es au num\u00e9ro SIRET.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"visualbasic\">'-----------------------------------------------------------------------------------------------------------------------\r\n'  Collecte de donn\u00e9es d'entreprises \u00e0 l'aide de l'API SIRENE\r\n'  Ecrit par Beno\u00eet RIVIERE, v1 10\/2023\r\n'\r\n'  Plus d'infos : https:\/\/www.auditsi.eu\/?p=11941\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n\r\n\r\nOption Explicit\r\n\r\n\r\n'D\u00e9claration des constantes\r\n'---URL de l'API Sirene\r\nConst URL_API_SIRENE = \"https:\/\/api.insee.fr\/entreprises\/sirene\/V3\/\"\r\n\r\n\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n' Contr\u00f4le de la validit\u00e9 d'un num\u00e9ro SIREN\r\n' Infos : https:\/\/www.auditsi.eu\/?p=11607\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n'Algorithme de Luhn applicable aux num\u00e9ros SIREN et SIRET\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n\r\n'V\u00e9rifie la clef de contr\u00f4le d'une cha\u00eene (qui contient la clef) selon l'algorithme de Luhn\r\nPrivate Function V\u00e9rifieClefLuhn(Cha\u00eene As String) As Boolean\r\n    'D\u00e9claration des variables\r\n    Dim LongueurCha\u00eene As Integer\r\n    Dim i As Integer\r\n    Dim Position As Integer\r\n    Dim Chiffre As Integer\r\n    Dim Addition As Integer\r\n        \r\n    'Calcule le nombre de caract\u00e8res de la Cha\u00eene\r\n    LongueurCha\u00eene = Len(Cha\u00eene)\r\n    \r\n    Addition = 0\r\n    Position = 0\r\n    \r\n    'Parcourt chaque chiffre de la variable Cha\u00eene de droite \u00e0 gauche\r\n    For i = LongueurCha\u00eene To 1 Step -1\r\n        Position = Position + 1\r\n        \r\n        'Lit le chiffre en cours (position i dans la Cha\u00eene)\r\n        Chiffre = CInt(Mid(Cha\u00eene, i, 1))\r\n        \r\n        'Si la position est paire (\u00e0 partir de la droite), multiplier par 2\r\n        If Position Mod 2 = 0 Then 'si le reste de la division i\/2= 0 -&gt; position paire sinon impaire\r\n            Chiffre = Chiffre * 2\r\n            'Si le r\u00e9sultat de la multiplication est sup\u00e9rieur \u00e0 9, soustraire 9\r\n            If Chiffre &gt; 9 Then\r\n                Chiffre = Chiffre - 9\r\n            End If\r\n        End If\r\n        \r\n        'Additionne les chiffres au fur et \u00e0 mesure de l'ex\u00e9cution de la boucle (impairs*2 + pairs)\r\n        Addition = Addition + Chiffre\r\n    Next i\r\n    \r\n    'Calcule la clef de contr\u00f4le\r\n    V\u00e9rifieClefLuhn = (Addition Mod 10) = 0\r\nEnd Function\r\n\r\n'V\u00e9rifie la validit\u00e9 de la clef contenue dans un num\u00e9ro SIREN\r\n'   Valeur de retour :\r\n'       - VRAI : clef correcte\r\n'       - FAUX : clef erronn\u00e9e ou longueur du num\u00e9ro SIREN fourni &lt;&gt; 9\r\nFunction V\u00e9rifieClefLuhn_SIREN(Cha\u00eene As String) As Boolean\r\n    Select Case Len(Cha\u00eene)\r\n        Case 9:\r\n            V\u00e9rifieClefLuhn_SIREN = V\u00e9rifieClefLuhn(Cha\u00eene)\r\n        Case Else:\r\n            V\u00e9rifieClefLuhn_SIREN = False\r\n    End Select\r\nEnd Function\r\n\r\n'V\u00e9rifie la validit\u00e9 de la clef contenue dans un num\u00e9ro SIRET\r\n'   Valeur de retour :\r\n'       - VRAI : clef correcte\r\n'       - FAUX : clef erronn\u00e9e ou longueur du num\u00e9ro SIRET fourni &lt;&gt; 14\r\nFunction V\u00e9rifieClefLuhn_SIRET(Cha\u00eene As String) As Boolean\r\n    Select Case Len(Cha\u00eene)\r\n        Case 14:\r\n            V\u00e9rifieClefLuhn_SIRET = V\u00e9rifieClefLuhn(Cha\u00eene)\r\n        Case Else:\r\n            V\u00e9rifieClefLuhn_SIRET = False\r\n    End Select\r\nEnd Function\r\n\r\n\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n' Contr\u00f4le de la validit\u00e9 d'un num\u00e9ro SIREN\r\n' Infos : https:\/\/www.auditsi.eu\/?p=11620\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n'Algorithme de Luhn applicable aux num\u00e9ros SIREN et SIRET\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n\r\n'Calcule la clef de contr\u00f4le d'une cha\u00eene (qui ne contient pas la clef) selon l'algorithme de Luhn\r\nPrivate Function CalculeClefLuhn(Cha\u00eene As String) As Integer\r\n    'D\u00e9claration des variables\r\n    Dim LongueurCha\u00eene As Integer\r\n    Dim i As Integer\r\n    Dim Position As Integer\r\n    Dim Chiffre As Integer\r\n    Dim Addition As Integer\r\n        \r\n    'Calcule le nombre de caract\u00e8res de la Cha\u00eene\r\n    LongueurCha\u00eene = Len(Cha\u00eene)\r\n    \r\n    Addition = 0\r\n    \r\n    'Parcourt chaque chiffre de la variable Cha\u00eene de droite \u00e0 gauche\r\n    For i = LongueurCha\u00eene To 1 Step -1\r\n        Position = Position + 1\r\n        \r\n        'Lit le chiffre en cours (position i dans la Cha\u00eene)\r\n        Chiffre = CInt(Mid(Cha\u00eene, i, 1))\r\n        \r\n        'Si la position est paire (\u00e0 partir de la droite), multiplier par 2\r\n        If Position Mod 2 &lt;&gt; 0 Then 'si le reste de la division i\/2= 0 -&gt; position paire sinon impaire\r\n            Chiffre = Chiffre * 2\r\n            'Si le r\u00e9sultat de la multiplication est sup\u00e9rieur \u00e0 9, soustraire 9\r\n            If Chiffre &gt; 9 Then\r\n                Chiffre = Chiffre - 9\r\n            End If\r\n        End If\r\n        \r\n        'Additionne les chiffres au fur et \u00e0 mesure de l'ex\u00e9cution de la boucle (impairs*2 + pairs)\r\n        Addition = Addition + Chiffre\r\n    Next i\r\n    \r\n    'Calcule la clef de contr\u00f4le\r\n    CalculeClefLuhn = (10 - (Addition Mod 10)) Mod 10\r\nEnd Function\r\n\r\n\r\n'Calcule la clef d'un num\u00e9ro SIRET (13 caract\u00e8res)\r\n'   Valeur de retour :\r\n'       - chiffre positif de 0 \u00e0 9 : clef de contr\u00f4le\r\n'       - -1                       : longueur du num\u00e9ro SIRET fourni (sans clef de contr\u00f4le) &lt;&gt; 13\r\nFunction CalculeClefLuhn_SIRET(Cha\u00eene As String) As Integer\r\n    Select Case Len(Cha\u00eene)\r\n        Case 13:\r\n            CalculeClefLuhn_SIRET = CalculeClefLuhn(Cha\u00eene)\r\n        Case Else:\r\n            CalculeClefLuhn_SIRET = -1\r\n    End Select\r\nEnd Function\r\n\r\n\r\n'Calcule un num\u00e9ro SIRET (14 caract\u00e8res) \u00e0 partir de deux param\u00e8tres : le n\u00b0 SIREN et le n\u00b0 d'\u00e9tablissement\r\n'   Valeur de retour :\r\n'       - N\u00b0 SIRET sur 14 caract\u00e8res\r\n'       - -1                       : longueur du num\u00e9ro SIRET fourni (sans clef de contr\u00f4le) &lt;&gt; 13\r\nFunction Calcule_SIRET(SIREN As String, Etablissement As Integer) As Variant\r\nDim SIRET13 As String\r\n    SIRET13 = SIREN &amp; Format(Etablissement, \"0000\")\r\n    Select Case Len(SIRET13)\r\n        Case 13:\r\n            Calcule_SIRET = SIRET13 &amp; CStr(CalculeClefLuhn_SIRET(SIRET13))\r\n        Case Else:\r\n            Calcule_SIRET = -1\r\n    End Select\r\nEnd Function\r\n\r\n\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n'Interrogation et collecte des donn\u00e9es de l'API SIRENE\r\nFunction Interrogation_API_SIRENE(SIREN_ou_SIRET As String, Clef_API_SIRENE As String) As String\r\n    Dim Type_Num\u00e9ro As String\r\n    Dim Requ\u00eate_XMLHTTP As Object\r\n    Dim R\u00e9ponse_Requ\u00eate As Variant\r\n    Dim Statut_Requ\u00eate As Integer\r\n    Dim Message_Erreur As String\r\n    \r\n    'Test de la validit\u00e9 du n\u00b0 SIREN ou du n\u00b0 SIRET\r\n    '(en cas de non conformit\u00e9 : retour d'un message d'erreur)\r\n    Select Case Len(SIREN_ou_SIRET)\r\n        Case 9:\r\n            If V\u00e9rifieClefLuhn_SIREN(SIREN_ou_SIRET) = False Then\r\n                Interrogation_API_SIRENE = \"Erreur 999. Num\u00e9ro SIREN \" &amp; SIREN_ou_SIRET &amp; \" non conforme\"\r\n                Exit Function\r\n            End If\r\n            Type_Num\u00e9ro = \"siren\"\r\n        Case 14:\r\n            If V\u00e9rifieClefLuhn_SIRET(SIREN_ou_SIRET) = False Then\r\n                Interrogation_API_SIRENE = \"Erreur 998. Num\u00e9ro SIRET \" &amp; SIREN_ou_SIRET &amp; \" non conforme\"\r\n                Exit Function\r\n            End If\r\n            Type_Num\u00e9ro = \"siret\"\r\n        Case Else:\r\n            Interrogation_API_SIRENE = \"Erreur 997. Longueur num\u00e9ro SIREN \/ SIRET \" &amp; SIREN_ou_SIRET &amp; \" non conforme\"\r\n            Exit Function\r\n    End Select\r\n        \r\n    'Cr\u00e9ation de l'objet Requ\u00eate_XMLHTTP pour effectuer la requ\u00eate sur l'API SIRENE\r\n    Set Requ\u00eate_XMLHTTP = CreateObject(\"MSXML2.ServerXMLHTTP.6.0\")\r\n    \r\n    'Cr\u00e9ation et envoi de la requ\u00eate\r\n    With Requ\u00eate_XMLHTTP\r\n        'Envoi de la requ\u00eate GET \u00e0 l'API SIRENE\r\n        .Open \"GET\", URL_API_SIRENE &amp; Type_Num\u00e9ro &amp; \"\/\" &amp; SIREN_ou_SIRET, False\r\n        'Authentification \u00e0 l'aide de la clef (token)\r\n        .SetRequestHeader \"Authorization\", \"Bearer \" &amp; Clef_API_SIRENE\r\n        'Envoi de la requ\u00eate\r\n        .Send\r\n        'R\u00e9ception de la r\u00e9ponse\r\n        R\u00e9ponse_Requ\u00eate = .ResponseText\r\n        'Statut de la requ\u00eate\r\n        Statut_Requ\u00eate = .Status '200 = Ok sinon statut en erreur\r\n    End With\r\n    \r\n    'Lib\u00e8re l'objet Requ\u00eate_XMLHTTP\r\n    Set Requ\u00eate_XMLHTTP = Nothing\r\n    \r\n    'En fonction du statut de la r\u00e9ponse...\r\n    Select Case Statut_Requ\u00eate\r\n        Case 200:  '...statut Ok -&gt; retourne le r\u00e9sultat de la requ\u00eate\r\n            'Remplace les donn\u00e9es Null par \"\" (cha\u00eene vide)\r\n            R\u00e9ponse_Requ\u00eate = Replace(R\u00e9ponse_Requ\u00eate, \"null\", \"\")\r\n            'Retourne ke texte de la r\u00e9ponse\r\n            Interrogation_API_SIRENE = R\u00e9ponse_Requ\u00eate\r\n        Case Else: '...statut en erreur -&gt; retourne un message d'erreur\r\n            Select Case Statut_Requ\u00eate\r\n                Case 400:\r\n                    Message_Erreur = \"Nombre incorrect de param\u00e8tres ou les param\u00e8tres sont mal format\u00e9s\"\r\n                Case 401:\r\n                    Message_Erreur = \"Jeton d'acc\u00e8s manquant ou invalide\"\r\n                Case 404:\r\n                    Message_Erreur = \"Entreprise non trouv\u00e9e dans la base Sirene\"\r\n                Case 406:\r\n                    Message_Erreur = \"Le param\u00e8tre 'Accept' de l'en-t\u00eate HTTP contient une valeur non pr\u00e9vue\"\r\n                Case 414:\r\n                    Message_Erreur = \"Requ\u00eate trop longue\"\r\n                Case 429:\r\n                    Message_Erreur = \"Quota d'interrogations de l'API d\u00e9pass\u00e9\"\r\n                Case 500:\r\n                    Message_Erreur = \"Erreur interne du serveur\"\r\n                Case 503:\r\n                    Message_Erreur = \"Service indisponible\"\r\n            End Select\r\n            Message_Erreur = \"Erreur \" &amp; Statut_Requ\u00eate &amp; \". \" &amp; Message_Erreur\r\n            Interrogation_API_SIRENE = Message_Erreur\r\n    End Select\r\nEnd Function\r\n\r\n\r\n'-----------------------------------------------------------------------------------------------------------------------\r\n'Extraction des donn\u00e9es\r\n'Informations sur cette fonction : https:\/\/www.auditsi.eu\/?p=9377\r\nFunction Extraction_Champ_API_SIRENE(R\u00e9ponse_Requ\u00eate_SIRENE As Variant, NomChamp As String) As Variant\r\n    Dim PositionD\u00e9but As Long\r\n    Dim NomChamp_A_rechercher As String\r\n    Dim Donn\u00e9e As Variant\r\n    \r\n    NomChamp_A_rechercher = Chr(34) &amp; NomChamp &amp; Chr(34) &amp; \":\"\r\n    \r\n    PositionD\u00e9but = InStr(R\u00e9ponse_Requ\u00eate_SIRENE, NomChamp_A_rechercher)\r\n    \r\n    Select Case PositionD\u00e9but\r\n        Case 0: 'champ non trouv\u00e9 -&gt; retour vide\r\n            Extraction_Champ_API_SIRENE = \"\"\r\n        Case Else: 'sinon retourne la donn\u00e9e correspondante\r\n            PositionD\u00e9but = PositionD\u00e9but + Len(NomChamp_A_rechercher)\r\n            Donn\u00e9e = Replace(Mid(R\u00e9ponse_Requ\u00eate_SIRENE, PositionD\u00e9but, InStr(Right(R\u00e9ponse_Requ\u00eate_SIRENE, Len(R\u00e9ponse_Requ\u00eate_SIRENE) - PositionD\u00e9but + 1), \",\") - 1), Chr(34), \"\")\r\n            Select Case NomChamp\r\n                Case \"dateCreationUniteLegale\", \"dateDernierTraitementUniteLegale\", \"dateSuppressionUniteLegale\":\r\n                    Donn\u00e9e = Left(Donn\u00e9e, 10)\r\n                    Donn\u00e9e = CDate(Right(Donn\u00e9e, 2) &amp; \"\/\" &amp; Mid(Donn\u00e9e, 6, 2) &amp; \"\/\" &amp; Left(Donn\u00e9e, 4))\r\n            End Select\r\n            Extraction_Champ_API_SIRENE = Donn\u00e9e\r\n    End Select\r\nEnd Function<\/pre>\n<p style=\"text-align: justify;\"><strong><em>Le classeur Excel :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">Le classeur Excel est propos\u00e9 en libre t\u00e9l\u00e9chargement en bas de cette page.<\/p>\n<p style=\"text-align: justify;\">La cellule B31 comprend le num\u00e9ro SIRET qui sera interrog\u00e9. Il peut \u00eatre saisi manuellement par l&#8217;utilisateur. Mais, dans notre exemple, il est constitu\u00e9 du num\u00e9ro SIREN saisi en cellule B6 auquel est adjoint (par l&#8217;esperluette &amp;) le code NIC du si\u00e8ge social de l&#8217;entreprise stock\u00e9 en cellule C13 (obtenu par la formule <em>=Extraction_Champ_API_SIRENE($B$7;B13)<\/em>) afi d&#8217;obtenir le <strong>num\u00e9ro SIRET du si\u00e8ge social<\/strong> :<\/p>\n<p style=\"text-align: center;\">=B6&amp;C13<\/p>\n<p style=\"text-align: justify;\">La base du classeur Excel et les fonctions cr\u00e9\u00e9es par le code VBA sont communes avec le traitement des entreprises (SIREN) pr\u00e9sent\u00e9es en premi\u00e8re partie.<\/p>\n<p>Ainsi, pour <strong>interroger l&#8217;API SIRENE \u00e0 partir du num\u00e9ro SIRET<\/strong>, la cellule B32 contient la formule suivante :<\/p>\n<p style=\"text-align: center;\">=<strong>Interrogation_API_SIRENE<\/strong>($B$31;$B$2)<\/p>\n<p style=\"text-align: justify;\">L&#8217;interrogation d&#8217;un num\u00e9ro SIRET et d&#8217;un num\u00e9ro SIREN (cf 1\u00e8re partie de cet article) sont r\u00e9alis\u00e9es par la m\u00eame fonction (<em>Interrogation_API_SIRENE<\/em>). Cette fonction reconna\u00eet automatiquement&nbsp; la nature du num\u00e9ro en fonction de sa longueur (9 = SIREN, 14 = SIRET \u00e0 l&#8217;aide de la fonction <em>Len()<\/em>).<\/p>\n<p>La <strong>r\u00e9ponse retourn\u00e9e par le serveur SIRENE<\/strong> prend la m\u00eame forme que pour un num\u00e9ro SIREN avec toutefois des champs de donn\u00e9es propres au num\u00e9ro SIRET (base des \u00e9tablissements) :<\/p>\n<p>{&#8220;header&#8221;:{&#8220;statut&#8221;:200,&#8221;message&#8221;:&#8221;ok&#8221;},&#8221;etablissement&#8221;:{&#8220;siren&#8221;:&#8221;312212301&#8243;,&#8221;nic&#8221;:&#8221;02001&#8243;,&#8221;siret&#8221;:&#8221;31221230102001&#8243;,&#8221;statutDiffusionEtablissement&#8221;:&#8221;O&#8221;,&#8221;dateCreationEtablissement&#8221;:&#8221;2011-10-13&#8243;,&#8221;trancheEffectifsEtablissement&#8221;:&#8221;22&#8243;,&#8221;anneeEffectifsEtablissement&#8221;:&#8221;2020&#8243;,&#8221;activitePrincipaleRegistreMetiersEtablissement&#8221;:,&#8221;dateDernierTraitementEtablissement&#8221;:&#8221;2023-07-19T03:41:07&#8243;,&#8221;etablissementSiege&#8221;:true,&#8221;nombrePeriodesEtablissement&#8221;:2,&#8221;uniteLegale&#8221;:{&#8220;etatAdministratifUniteLegale&#8221;:&#8221;A&#8221;,&#8221;statutDiffusionUniteLegale&#8221;:&#8221;O&#8221;,&#8221;dateCreationUniteLegale&#8221;:&#8221;1978-01-01&#8243;,&#8221;categorieJuridiqueUniteLegale&#8221;:&#8221;5599&#8243;,&#8221;denominationUniteLegale&#8221;:&#8221;RENAULT RETAIL GROUP&#8221;,&#8221;sigleUniteLegale&#8221;:,&#8221;denominationUsuelle1UniteLegale&#8221;:,&#8221;denominationUsuelle2UniteLegale&#8221;:,&#8221;denominationUsuelle3UniteLegale&#8221;:,&#8221;sexeUniteLegale&#8221;:,&#8221;nomUniteLegale&#8221;:,&#8221;nomUsageUniteLegale&#8221;:,&#8221;prenom1UniteLegale&#8221;:,&#8221;prenom2UniteLegale&#8221;:,&#8221;prenom3UniteLegale&#8221;:,&#8221;prenom4UniteLegale&#8221;:,&#8221;prenomUsuelUniteLegale&#8221;:,&#8221;pseudonymeUniteLegale&#8221;:,<span style=\"background-color: #cc99ff;\">&#8220;activitePrincipaleUniteLegale&#8221;:&#8221;45.11Z&#8221;<\/span>,&#8221;nomenclatureActivitePrincipaleUniteLegale&#8221;:&#8221;NAFRev2&#8243;,&#8221;identifiantAssociationUniteLegale&#8221;:,&#8221;economieSocialeSolidaireUniteLegale&#8221;:&#8221;N&#8221;,&#8221;societeMissionUniteLegale&#8221;:&#8221;N&#8221;,&#8221;caractereEmployeurUniteLegale&#8221;:&#8221;O&#8221;,&#8221;trancheEffectifsUniteLegale&#8221;:&#8221;52&#8243;,&#8221;anneeEffectifsUniteLegale&#8221;:&#8221;2020&#8243;,&#8221;nicSiegeUniteLegale&#8221;:&#8221;02001&#8243;,&#8221;dateDernierTraitementUniteLegale&#8221;:&#8221;2023-10-12T11:09:32&#8243;,&#8221;categorieEntreprise&#8221;:&#8221;GE&#8221;,&#8221;anneeCategorieEntreprise&#8221;:&#8221;2020&#8243;},&#8221;adresseEtablissement&#8221;:{&#8220;complementAdresseEtablissement&#8221;:&#8221;1ER-2E ETAGE&#8221;,&#8221;numeroVoieEtablissement&#8221;:&#8221;2&#8243;,&#8221;indiceRepetitionEtablissement&#8221;:,&#8221;typeVoieEtablissement&#8221;:&#8221;AV&#8221;,&#8221;libelleVoieEtablissement&#8221;:&#8221;DENIS PAPIN&#8221;,<span style=\"background-color: #99ccff;\">&#8220;codePostalEtablissement&#8221;:&#8221;92140&#8243;<\/span>,&#8221;libelleCommuneEtablissement&#8221;:&#8221;CLAMART&#8221;,&#8221;libelleCommuneEtrangerEtablissement&#8221;:,&#8221;distributionSpecialeEtablissement&#8221;:,<span style=\"background-color: #ccffff;\">&#8220;codeCommuneEtablissement&#8221;:&#8221;92023&#8243;<\/span>,&#8221;codeCedexEtablissement&#8221;:,&#8221;libelleCedexEtablissement&#8221;:,&#8221;codePaysEtrangerEtablissement&#8221;:,&#8221;libellePaysEtrangerEtablissement&#8221;:},&#8221;adresse2Etablissement&#8221;:{&#8220;complementAdresse2Etablissement&#8221;:,&#8221;numeroVoie2Etablissement&#8221;:,&#8221;indiceRepetition2Etablissement&#8221;:,&#8221;typeVoie2Etablissement&#8221;:,&#8221;libelleVoie2Etablissement&#8221;:,&#8221;codePostal2Etablissement&#8221;:,&#8221;libelleCommune2Etablissement&#8221;:,&#8221;libelleCommuneEtranger2Etablissement&#8221;:,&#8221;distributionSpeciale2Etablissement&#8221;:,&#8221;codeCommune2Etablissement&#8221;:,&#8221;codeCedex2Etablissement&#8221;:,&#8221;libelleCedex2Etablissement&#8221;:,&#8221;codePaysEtranger2Etablissement&#8221;:,&#8221;libellePaysEtranger2Etablissement&#8221;:},&#8221;periodesEtablissement&#8221;:[{&#8220;dateFin&#8221;:,&#8221;dateDebut&#8221;:&#8221;2012-12-01&#8243;,&#8221;etatAdministratifEtablissement&#8221;:&#8221;A&#8221;,&#8221;changementEtatAdministratifEtablissement&#8221;:false,&#8221;enseigne1Etablissement&#8221;:,&#8221;enseigne2Etablissement&#8221;:,&#8221;enseigne3Etablissement&#8221;:,&#8221;changementEnseigneEtablissement&#8221;:false,&#8221;denominationUsuelleEtablissement&#8221;:,&#8221;changementDenominationUsuelleEtablissement&#8221;:false,&#8221;activitePrincipaleEtablissement&#8221;:&#8221;70.10Z&#8221;,&#8221;nomenclatureActivitePrincipaleEtablissement&#8221;:&#8221;NAFRev2&#8243;,&#8221;changementActivitePrincipaleEtablissement&#8221;:true,&#8221;caractereEmployeurEtablissement&#8221;:&#8221;O&#8221;,&#8221;changementCaractereEmployeurEtablissement&#8221;:false},{&#8220;dateFin&#8221;:&#8221;2012-11-30&#8243;,&#8221;dateDebut&#8221;:&#8221;2011-10-13&#8243;,&#8221;etatAdministratifEtablissement&#8221;:&#8221;A&#8221;,&#8221;changementEtatAdministratifEtablissement&#8221;:false,&#8221;enseigne1Etablissement&#8221;:,&#8221;enseigne2Etablissement&#8221;:,&#8221;enseigne3Etablissement&#8221;:,&#8221;changementEnseigneEtablissement&#8221;:false,&#8221;denominationUsuelleEtablissement&#8221;:,&#8221;changementDenominationUsuelleEtablissement&#8221;:false,&#8221;activitePrincipaleEtablissement&#8221;:&#8221;45.11Z&#8221;,&#8221;nomenclatureActivitePrincipaleEtablissement&#8221;:&#8221;NAFRev2&#8243;,&#8221;changementActivitePrincipaleEtablissement&#8221;:false,&#8221;caractereEmployeurEtablissement&#8221;:&#8221;O&#8221;,&#8221;changementCaractereEmployeurEtablissement&#8221;:false}]}}<\/p>\n<p>La <strong>lecture des champs de donn\u00e9es<\/strong> s&#8217;op\u00e8re \u00e9galement avec la <strong>fonction <em>Extraction_Champ_API_SIRENE<\/em><\/strong>, ainsi pour lire le code postal de l&#8217;\u00e9tablissement (nom du champ : <span style=\"background-color: #99ccff;\">codePostalEtablissement<\/span>) :<\/p>\n<p style=\"text-align: center;\">=Extraction_Champ_API_SIRENE($B$32;B41)<\/p>\n<p>Le premier param\u00e8tre correspond \u00e0 la r\u00e9ponse SIRENE (situ\u00e9e ici en cellule B32 et le deuxi\u00e8me au nom du champ de donn\u00e9es \u00e0 extraire (ici <span style=\"background-color: #99ccff;\">codePostalEtablissement<\/span>). Le r\u00e9sultat correspondant est : <span style=\"background-color: #99ccff;\">92140<\/span>.<\/p>\n<p>Les principaux champs de donn\u00e9es int\u00e9ressants d&#8217;un \u00e9tablissement :<\/p>\n<ul>\n<li>Les champs permettant de reconstituer l&#8217;adresse de l&#8217;\u00e9tablissement : complementAdresseEtablissement, numeroVoieEtablissement, indiceRepetitionEtablissement,<br \/>\ntypeVoieEtablissement, libelleVoieEtablissement, <span style=\"background-color: #99ccff;\">codePostalEtablissement<\/span>, libelleCommuneEtablissement, libelleCommuneEtrangerEtablissement,<br \/>\ndistributionSpecialeEtablissement, codePaysEtrangerEtablissement, libellePaysEtrangerEtablissement, codeCedexEtablissement, libelleCedexEtablissement<\/li>\n<li>Code INSEE de la commune de l&#8217;\u00e9tablissement : <span style=\"background-color: #ccffff;\">codeCommuneEtablissement<\/span><\/li>\n<li>Etat administratif de l&#8217;\u00e9tablissement (Actif ou Cess\u00e9) : etatAdministratifEtablissement<\/li>\n<li>En cas de reprise ou cession d&#8217;\u00e9tablissement : siretEtablissementPredecesseur, siretEtablissementSuccesseur, dateLienSuccession<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">La <strong>liste compl\u00e8te des champs de donn\u00e9es<\/strong> disponibles <a href=\"https:\/\/sirene.fr\/static-resources\/htm\/v_sommaire.htm\" target=\"_blank\" rel=\"noopener\">consultable sur le site SIRENE<\/a>.<\/p>\n<p style=\"text-align: justify;\">Exemple d&#8217;utilisation : reconstituer l&#8217;adresse du si\u00e8ge social :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11957\" src=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/ADRESSE-SIEGE-SOCIAL.png\" alt=\"ADRESSE SIEGE SOCIAL\" width=\"767\" height=\"254\" srcset=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/ADRESSE-SIEGE-SOCIAL.png 767w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/ADRESSE-SIEGE-SOCIAL-300x99.png 300w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2023\/10\/ADRESSE-SIEGE-SOCIAL-730x242.png 730w\" sizes=\"auto, (max-width: 767px) 100vw, 767px\" \/><\/p>\n<p style=\"text-align: justify;\">Autres moyens permettant de consulter des informations sur les entreprises :<\/p>\n<ul style=\"text-align: justify;\">\n<li><a href=\"https:\/\/www.auditsi.eu\/?p=11711\">T\u00e9l\u00e9charger gratuitement des listes d\u2019entreprises et de leurs \u00e9tablissements<\/a> (fichier SIRENE)<\/li>\n<li>Consulter des sites internet sp\u00e9cialis\u00e9s : <a href=\"https:\/\/avis-situation-sirene.insee.fr\/\" target=\"_blank\" rel=\"noopener\">fiche SIRENE (au format PDF)<\/a>, <a href=\"https:\/\/www.auditsi.eu\/?p=9178\">site Pappers<\/a>, site <a href=\"https:\/\/www.auditsi.eu\/?p=9421\">Soci\u00e9t\u00e9 Ninja<\/a>\u2026 ; <a href=\"https:\/\/www.auditsi.eu\/?p=11626\">Automatiser le t\u00e9l\u00e9chargement en masse de fiches SIRENE<\/a> .<\/li>\n<li>Mettre en oeuvre des API (<em>Application Programming Interface<\/em> ou interface de programmation applicative) : par exemple celles de <a href=\"https:\/\/api.insee.fr\/catalogue\/site\/themes\/wso2\/subthemes\/insee\/pages\/item-info.jag?name=Sirene&amp;version=V3&amp;provider=insee\" target=\"_blank\" rel=\"noopener\">SIRENE<\/a> ou <a href=\"https:\/\/www.auditsi.eu\/?p=9377\">Pappers<\/a>.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">___<\/p>\n<p style=\"text-align: justify;\">Pour aller plus loin : articles en rapport avec <a href=\"https:\/\/www.auditsi.eu\/?tag=sirene\">SIRENE<\/a>, <a href=\"https:\/\/www.auditsi.eu\/?tag=siren\">SIREN<\/a>, <a href=\"https:\/\/www.auditsi.eu\/?tag=siret\">SIRET<\/a> \/ <a href=\"https:\/\/www.auditsi.eu\/?tag=publicite-legale\">Publicit\u00e9 l\u00e9gale des entreprises<\/a> \/ <a href=\"https:\/\/www.auditsi.eu\/?tag=api\">API<\/a> \/ <a href=\"https:\/\/www.auditsi.eu\/?tag=open-data\">Open Data<\/a><\/p>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div id=\"sconnect-is-installed\" style=\"display: none;\">2.13.0.0<\/div>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img decoding=\"async\" src=\"https:\/\/static.hupso.com\/share\/buttons\/lang\/fr\/share-small.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"facebook_send\",\"email\",\"print\",\"linkedin\");var hupso_counters_lang = \"fr_FR\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"BenoitRiviere14\";var hupso_url_c=\"\";var hupso_title_c=\"Excel%20%3A%20collecter%20des%20donn%C3%A9es%20juridiques%20sur%20les%20entreprises%20avec%20l%27API%20SIRENE%20-%202%C3%A8me%20partie%20%3A%20base%20SIRET%20%28%C3%A9tablissements%29\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"excerpt":{"rendered":"<p>Dans un monde \u00e9conomique aussi mouvant o\u00f9 les crises de succ\u00e8dent aussi rapidement, les entreprises ont besoin d\u2019obtenir et de maintenir des informations financi\u00e8res et juridiques, fiables et en permanence \u00e0 jour, sur leurs partenaires (clients, fournisseurs\u2026). Que ce soit pour cr\u00e9er ou mettre \u00e0 jour des fiches tiers (outil strat\u00e9gique dans le cadre de &#8230;<\/p>\n<p><a href=\"https:\/\/www.auditsi.eu\/?p=11941\" class=\"more-link\">Continue reading &lsquo;Excel : collecter des donn\u00e9es juridiques sur les entreprises avec l&#8217;API SIRENE &#8211; 2\u00e8me partie : base SIRET (\u00e9tablissements)&rsquo; &raquo;<\/a><\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img src=\"https:\/\/static.hupso.com\/share\/buttons\/lang\/fr\/share-small.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"facebook_send\",\"email\",\"print\",\"linkedin\");var hupso_counters_lang = \"fr_FR\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"BenoitRiviere14\";var hupso_url_c=\"\";var hupso_title_c=\"Excel%20%3A%20collecter%20des%20donn%C3%A9es%20juridiques%20sur%20les%20entreprises%20avec%20l%27API%20SIRENE%20-%202%C3%A8me%20partie%20%3A%20base%20SIRET%20%28%C3%A9tablissements%29\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[3066,472,490,215],"tags":[3045,2387,2116,3059,3044,2903,3048,1787,233,2398,2978,2118,3057,2395,11,1784,2358,2359,1641],"class_list":["post-11941","post","type-post","status-publish","format-standard","hentry","category-collecter-des-donnees-juridiques-sur-les-entreprises-avec-lapi-sirene","category-cycle-clients-controle-des-comptes","category-cycle-fournisseurs-controle-des-comptes","category-vba","tag-open-get","tag-adresse","tag-api","tag-code-insee","tag-createobjectmsxml2-serverxmlhttp-6-0","tag-esperluette","tag-fiche-tiers","tag-insee-fr","tag-len","tag-loi-sapin-2","tag-nic","tag-open-data","tag-private-function-end-function","tag-requete-http","tag-scandales-financiers","tag-siren","tag-sirene","tag-siret","tag-vba"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/11941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11941"}],"version-history":[{"count":9,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/11941\/revisions"}],"predecessor-version":[{"id":11960,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/11941\/revisions\/11960"}],"wp:attachment":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}