Quick Start Kit: Conserver automatiquement un historique quotidien de vos données
- qescore
- 19 juin
- 3 min de lecture
Avec la version v1.1 du module DataCollection, nous introduisons une nouvelle fonctionnalité puissante :
✅ Sauvegarde automatique quotidienne de l’historique des données

Cette mise à jour permet d’archiver automatiquement les données de votre tableau de bord chaque jour, sans intervention manuelle.C’est une étape simple mais essentielle pour suivre l’évolution des indicateurs, diagnostiquer les problèmes ou conserver un historique fiable à des fins d’analyse future.
Sauvegarder les données du jour permet de constituer un historique et de suivre l’évolution de toutes les données dans le temps, ce qui peut ensuite être exploité directement dans le Dashboard (Looker Studio).

1. Principe de fonctionnement
À la fin de chaque journée, un script va automatiquement copier les lignes de données du jour depuis l’onglet data_dashboard et les ajouter à la fin du même fichier.
Cela permet de constituer, jour après jour, un historique complet de vos données — une "photo" par jour.

2. Planifier le lancement automatique
Il suffit de planifier le lancement du script une fois. Voici comment faire :
Ouvrez votre Google Sheet.
Allez dans Extensions > Apps Script.
Dans l’éditeur Apps Script, ouvrez le menu Déclencheurs (icône horloge à gauche).
Cliquez sur "Ajouter un déclencheur" (en bas à droite).
Sélectionnez la fonction : copyTodayRowsUniqueAppli.
Source de l’événement : Déclencheur basé sur le temps (Time-driven).
Type de fréquence : Quotidien.
Plage horaire : Entre 23h00 et minuit.
Cliquez sur Enregistrer.
Une fois ce déclencheur créé, la fonction s’exécutera automatiquement chaque jour pour sauvegarder les données.
3. Si vous utilisez une ancienne version du Quick Start Kit
Si votre feuille DataCollection ne contient pas encore cette fonctionnalité :
Allez dans Extensions > Apps Script.
Dans l’éditeur, cliquez sur l’icône "+" pour ajouter un nouveau fichier script.
Copiez-collez le script fourni ci-dessous dans le nouveau fichier.
Cliquez sur Enregistrer.
Puis, reprenez les étapes de la section 2 pour planifier le déclencheur.

function copyTodayRowsUniqueAppli() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("data_dashboard");
const today = new Date();
today.setHours(0, 0, 0, 0); // Normalize for comparison
const lastRow = sheet.getLastRow();
const lastCol = sheet.getLastColumn();
const allData = sheet.getRange(2, 1, lastRow - 1, lastCol).getValues(); // Full data from row 2
const matchingRows = [];
for (let i = 0; i < allData.length; i++) {
const row = allData[i];
const dateCell = row[0];
const colBValue = row[1];
if (!dateCell) break; // Stop at first empty date
const rowDate = new Date(dateCell);
rowDate.setHours(0, 0, 0, 0);
if (rowDate.getTime() === today.getTime()) {
// Count how many times this (today's date + col B) combo exists in the entire data
let count = 0;
for (let j = 0; j < allData.length; j++) {
const d = new Date(allData[j][0]);
d.setHours(0, 0, 0, 0);
if (d.getTime() === today.getTime() && allData[j][1] === colBValue) {
count++;
}
}
if (count <= 1) { // Only copy if the combo exists once or less
matchingRows.push(row);
}
}
}
if (matchingRows.length > 0) {
const destinationStartRow = sheet.getLastRow() + 1;
sheet.getRange(destinationStartRow, 1, matchingRows.length, matchingRows[0].length)
.setValues(matchingRows);
Logger.log(matchingRows.length + " row(s) copied.");
} else {
Logger.log("No rows to copy: all (date + column B) combos already exist more than once.");
}
}
Cette configuration simple vous garantit un historique fiable de vos données — versionné par jour — sans exportation manuelle ni archivage à faire.
Prêt à l’essayer ? Passez à la version v1.1 et configurez votre déclencheur dès aujourd’hui !
Comments