Simplifiez l’accès aux fiches SIRENE avec Google Sheets et Apps Script

Dans le vaste univers des données d’entreprise, une source se distingue par sa richesse et sa fiabilité : le système SIRENE de l’INSEE. Avant de plonger dans notre solution d’automatisation, faisons un détour pour comprendre ce trésor d’informations.

Qu’est-ce que le système SIRENE ?

Le Système d’Identification du Répertoire des ENtreprises (SIRENE) est une base de données gérée par l’Institut National de la Statistique et des Études Économiques (INSEE) en France.

Elle regroupe des informations détaillées sur les entreprises et leurs établissements sur le territoire français.

Chaque entité inscrite dans le répertoire se voit attribuer un numéro unique : le SIREN pour l’entreprise dans son ensemble, et le SIRET pour chaque établissement de cette entreprise.

Pourquoi les fiches SIRENE sont-elles importantes ?

Les fiches SIRENE contiennent une mine d’informations essentielles pour quiconque cherche à faire des affaires, à évaluer des partenaires commerciaux, ou simplement à s’informer sur le tissu économique français. Elles incluent, entre autres, le nom de l’entreprise, son adresse, son activité principale, et bien d’autres données utiles. L’accès à ces informations permet de réaliser des analyses de marché, de vérifier la légitimité des entreprises, et de prendre des décisions éclairées.

L’intérêt d’automatiser avec Google Sheets et Apps Script

Maintenant que nous comprenons l’importance des fiches SIRENE, intégrons cette richesse d’informations directement dans nos outils de travail quotidiens grâce à Google Sheets et Apps Script. Google Sheets est non seulement un outil de gestion de données extrêmement flexible mais, associé à Google Apps Script, il devient un puissant outil d’automatisation permettant de réaliser des tâches complexes avec peu d’effort.

Notre objectif : automatiser les téléchargements de fiches SIRENE

Imaginons que vous disposiez d’une liste de numéros SIRET et que vous souhaitiez obtenir les fiches SIRENE correspondantes de l’INSEE. Réaliser cette tâche manuellement pour chaque numéro serait non seulement fastidieux mais aussi très chronophage. Voici où notre script fait toute la différence.

La magie du script

Le script que nous avons développé offre les fonctionnalités suivantes :

  1. Ajout d’un menu personnalisé dans Google Sheets, rendant le lancement du script aussi simple que quelques clics.
  2. Lecture séquentielle des numéros SIRET dans la colonne A.
  3. Téléchargement automatique des fiches SIRENE via l’API SIRENE de l’INSEE pour chaque numéro SIRET, avec sauvegarde des fichiers PDF dans Google Drive.
  4. Insertion des liens directs vers les fichiers PDF dans la colonne B de la même ligne que le SIRET correspondant.

Cette approche ne simplifie pas seulement l’accès aux informations les plus à jour sur les entreprises mais assure également une organisation impeccable de vos données.

Configuration du script

Voici comment intégrer et utiliser ce script :

  1. Ouvrez votre Google Sheets où la liste des SIRET est ou sera saisie.
  2. Naviguez vers Extensions > Apps Script, et insérez le code du script.
  3. Sauvegardez et fermez l’éditeur de script pour revenir à votre feuille.
  4. Vous trouverez un nouveau menu « SIRENE ». Sélectionnez « Mettre à jour fiches SIRENE » pour démarrer le script.
/**
 * Fonction exécutée lorsque le spreadsheet est ouvert.
 * Ajoute un menu personnalisé à la feuille Google Sheets.
 */
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('SIRENE')
    .addItem('Mettre à jour fiches SIRENE', 'mettreAJourFichesSIRENE')
    .addToUi();
  
  var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // Insère les en-têtes s'ils ne sont pas déjà présents
  var enTetes = feuille.getRange(1, 1, 1, 2).getValues();
  if (enTetes[0][0] !== "N° de Siret" || enTetes[0][1] !== "Lien du fichier") {
    feuille.getRange(1, 1).setValue("N° de Siret");
    feuille.getRange(1, 2).setValue("Lien du fichier");
    
    // Optionnel : Applique un style aux en-têtes
    feuille.getRange(1, 1, 1, 2).setFontWeight("bold").setBackgroundColor("#f3f3f3");
  }
}

/**
 * Parcourt la colonne A pour chaque numéro SIRET, télécharge la fiche SIRENE correspondante,
 * et inscrit le lien du fichier PDF ou un message d'erreur dans la colonne B.
 * Ignore les cellules vides.
 */
function mettreAJourFichesSIRENE() {
  var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // Détermine le nombre de lignes remplies dans la colonne A
  var derniereLigne = feuille.getLastRow();
  
  // Obtient les valeurs de toute la colonne A jusqu'à la dernière ligne remplie
  var SIRETs = feuille.getRange(2, 1, derniereLigne-1).getValues(); // Commence à la ligne 2 pour ignorer l'en-tête
  
  SIRETs.forEach(function(ligne, index) {
    var SIRET = ligne[0].toString().trim();
    
    // Continue uniquement si SIRET n'est pas vide
    if (SIRET) {
      var urlFichier = telechargerFicheSIRENE(SIRET);
      // Met à jour la colonne B avec le résultat
      feuille.getRange(index + 2, 2).setValue(urlFichier); // Index + 2 pour correspondre à la ligne appropriée, en commençant après l'en-tête
    }
  });
  
  SpreadsheetApp.flush(); // Assurez-vous que toutes les modifications sont appliquées
}

/**
 * Télécharge une fiche établissement à partir d'un n° SIRET
 * en interrogeant l'API SIRENE de l'INSEE et sauvegarde le fichier PDF dans Google Drive.
 *
 * @param {string} SIRET - Le numéro SIRET pour lequel télécharger la fiche.
 * @return {string} Le statut de la requête ou l'URL du fichier PDF en cas de succès.
 */
function telechargerFicheSIRENE(SIRET) {
  var urlApiSiret = "https://api-avis-situation-sirene.insee.fr/identification/pdf/" + SIRET;
  var options = {
    'method': 'get',
    'contentType': 'application/json',
    'muteHttpExceptions': true
  };
  
  try {
    var reponse = UrlFetchApp.fetch(urlApiSiret, options);
    if (reponse.getResponseCode() == 200) {
      var blob = reponse.getBlob();
      var nomFichier = SIRET + ".pdf";
      var fichier = DriveApp.createFile(blob.setName(nomFichier));
      return fichier.getUrl();
    } else {
      return "Erreur : Statut " + reponse.getResponseCode();
    }
  } catch (e) {
    return "Erreur lors de la requête pour " + SIRET;
  }
}

En conclusion

L’accès facile et organisé aux données officielles des entreprises est un atout majeur dans le monde des affaires d’aujourd’hui. L’automatisation de tâches répétitives telles que le téléchargement et la gestion de documents officiels permet de libérer un temps précieux. L’exemple du script présenté aujourd’hui n’est qu’un aperçu des possibilités offertes par l’intégration de Google Sheets et Google Apps Script. Explorez, innovez et tirez le meilleur parti des données à votre disposition.