10 méthodes d’organisation professionnelle et personnelle avec Google Sheets et Google Apps Script

L’organisation est une compétence clé, aussi bien dans la vie professionnelle que personnelle. Une méthode d’organisation permet de structurer ses journées, ses projets, et ses priorités pour obtenir des résultats concrets et durables. Voici quelques meilleures méthodes d’organisation, enrichies de cas d’usage pratiques avec Google Sheets et Google Apps Script pour optimiser encore plus vos processus.

1. La méthode des 4P (Planning, Périmètre, Priorités, Progression)

Cette méthode vous aide à cadrer un projet dès le départ, en établissant un plan clair. Pour automatiser la gestion des tâches dans Google Sheets, vous pouvez créer un tableau listant les projets, leurs priorités, leur périmètre et leur progression. Grâce à Google Apps Script, vous pouvez automatiser l’envoi de notifications par e-mail lorsque des jalons sont atteints.

Exemple Google Apps Script :

Envoyer automatiquement un e-mail de rappel lorsque la date de fin d’un projet approche, basé sur les données saisies dans Google Sheets.

function envoyerRappel() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Projets');
  const donnees = feuille.getDataRange().getValues();
  const aujourdHui = new Date();
  
  donnees.forEach((ligne, index) => {
    if (index === 0) return; // Ignorer la ligne d'en-tête

    const dateLimite = new Date(ligne[3]); // Colonne D : Date de fin
    const responsable = ligne[2]; // Colonne C : Responsable
    const statut = ligne[4]; // Colonne E : Statut
    const nomProjet = ligne[0]; // Colonne A : Nom du projet
    
    // Envoyer un e-mail si la date de fin est dans 3 jours ou moins et que le projet n'est pas terminé
    if (dateLimite - aujourdHui <= 3 * 24 * 60 * 60 * 1000 && statut !== 'Terminé') {
      MailApp.sendEmail(
        responsable, 
        `Rappel : Projet "${nomProjet}" à terminer bientôt`, 
        `Le projet "${nomProjet}" approche de sa date de fin prévue le ${ligne[3]}. Merci de vérifier son avancement.`
      );
    }
  });
}

2. La méthode Kanban

Le Kanban permet de visualiser les tâches à réaliser sous forme de colonnes. Google Sheets peut servir de tableau Kanban avec des colonnes « À faire », « En cours », et « Terminé ». Une automatisation via Apps Script pourrait déplacer les tâches d’une colonne à l’autre en fonction de leur avancement.

Voici un exemple pratique de tableau Kanban dans Google Sheets avec Google Apps Script pour automatiser le déplacement des tâches entre les colonnes « À faire », « En cours », et « Terminé » :

Objectif : Automatiser l’envoi d’un rappel pour les tâches en cours ou à faire, et mettre à jour leur état selon la progression. L’utilisateur pourra manuellement déplacer les tâches entre les colonnes, mais vous pouvez utiliser un script pour vérifier si une tâche doit changer d’état en fonction des dates.

Apps Script pour le tableau Kanban :

Voici un script qui envoie des rappels par e-mail pour les tâches « À faire » et « En cours » dont la date d’échéance approche et qui met à jour l’état d’une tâche lorsqu’elle est terminée.

function gererKanban() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Kanban');
  const plageDonnees = feuille.getDataRange();
  const donnees = plageDonnees.getValues();
  const aujourdHui = new Date();

  donnees.forEach((ligne, index) => {
    if (index === 0) return; // Ignorer la première ligne d'en-tête
    const etat = ligne[1]; // Colonne B : État
    const dateEcheance = new Date(ligne[3]); // Colonne D : Date d'échéance
    const responsable = ligne[4]; // Colonne E : Responsable

    // Envoyer un e-mail de rappel pour les tâches "À faire" ou "En cours" avec une échéance dans les 3 jours
    if ((etat === 'À faire' || etat === 'En cours') && dateEcheance - aujourdHui <= 3 * 24 * 60 * 60 * 1000) {
      MailApp.sendEmail(responsable, 'Rappel : Tâche à compléter', `La tâche "${ligne[0]}" approche de sa date d'échéance (${ligne[3]}).`);
    }

    // Mise à jour automatique du statut si la tâche est terminée
    if (etat === 'En cours' && dateEcheance < aujourdHui) {
      feuille.getRange(index + 1, 2).setValue('Terminé');
    }
  });
}

3. La méthode Pomodoro

La méthode Pomodoro repose sur des cycles de 25 minutes de travail suivis de pauses courtes. Vous pouvez utiliser Google Sheets pour suivre vos sessions Pomodoro et mesurer votre productivité sur chaque tâche.

Exemple Google Sheets :

Créez un tracker Pomodoro avec Google Sheets et Google Apps Script implémentant la méthode Pomodoro pour une gestion efficace du temps. Il permet à l’utilisateur de personnaliser la durée des sessions de travail (Pomodoro) et des pauses. Le script suit chaque session dans Google Sheets et crée des événements correspondants dans Google Agenda pour bloquer automatiquement le temps de travail et de pause. Après 4 cycles Pomodoro, une pause longue est programmée pour optimiser les temps de repos. Cette automatisation aide à mieux organiser son travail, tout en gardant un suivi précis des sessions et des interruptions.


function demarrerPomodoro() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Pomodoro');
  
  // Vérification si la feuille existe, sinon la créer
  if (!feuille) {
    feuille = SpreadsheetApp.getActiveSpreadsheet().insertSheet('Pomodoro');
    feuille.appendRow(['Session', 'Heure de début', 'Durée']);
  }

  const ui = SpreadsheetApp.getUi();
  
  // Demander la durée du Pomodoro et de la pause
  const reponsePomodoro = ui.prompt('Durée du Pomodoro (en minutes)', ui.ButtonSet.OK);
  const reponsePause = ui.prompt('Durée de la pause (en minutes)', ui.ButtonSet.OK);
  
  const dureePomodoro = parseInt(reponsePomodoro.getResponseText()) || 25;
  const dureePause = parseInt(reponsePause.getResponseText()) || 5;

  // Démarrer la première session Pomodoro
  ui.alert(`Pomodoro 1 démarré ! Travaillez pendant ${dureePomodoro} minutes.`);
  
  const heureDebut = new Date();
  feuille.appendRow([`Pomodoro 1`, heureDebut, `Durée : ${dureePomodoro} minutes`]);

  // Planifier la fin du Pomodoro avec un déclencheur
  ScriptApp.newTrigger('finPomodoro')
    .timeBased()
    .after(dureePomodoro * 60 * 1000) // Convertir les minutes en millisecondes
    .create();
}

// Fonction exécutée à la fin du Pomodoro grâce au déclencheur
function finPomodoro() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Pomodoro');
  const ui = SpreadsheetApp.getUi();
  
  // Fin du Pomodoro
  ui.alert('Pomodoro terminé ! Prenez une pause.');
  
  // Planifier la fin de la pause
  const dureePause = 5; // Durée de la pause en minutes (peut être rendue dynamique)
  ScriptApp.newTrigger('finPause')
    .timeBased()
    .after(dureePause * 60 * 1000) // Convertir les minutes en millisecondes
    .create();
}

// Fonction exécutée à la fin de la pause grâce au déclencheur
function finPause() {
  const ui = SpreadsheetApp.getUi();
  ui.alert('Pause terminée ! Reprenez votre travail.');
  
  // Répéter ou continuer avec d'autres Pomodoros si nécessaire...
}

4. La méthode Timeboxing

Avec la méthode Timeboxing, vous bloquez des créneaux horaires dédiés à chaque tâche. Google Agenda est parfait pour cette méthode, mais vous pouvez aussi gérer votre emploi du temps dans Google Sheets. Utilisez Apps Script pour générer automatiquement des événements dans Google Agenda à partir de votre feuille de calcul.

Exemple Google Apps Script :

Créez un événement dans Google Agenda à partir de Google Sheets pour chaque tâche à planifier.

function creerEvenementsCalendrier() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Tâches');
  const donnees = feuille.getRange("A2:C").getValues(); // Colonne A : Titre, B : Date de début, C : Durée en heures
  const calendrier = CalendarApp.getDefaultCalendar();

  donnees.forEach((ligne, index) => {
    const titreEvenement = ligne[0]; // Colonne A : Titre de la tâche
    const heureDebut = new Date(ligne[1]); // Colonne B : Date de début
    const dureeHeures = ligne[2]; // Colonne C : Durée en heures

    // Vérifier si le titre, la date et la durée sont valides
    if (titreEvenement && !isNaN(heureDebut.getTime()) && dureeHeures > 0) {
      // Calculer l'heure de fin en fonction de la durée
      const heureFin = new Date(heureDebut.getTime() + dureeHeures * 60 * 60 * 1000); // Durée en heures

      // Créer un événement dans Google Agenda
      calendrier.createEvent(titreEvenement, heureDebut, heureFin);
      Logger.log(`Événement créé : ${titreEvenement}, de ${heureDebut} à ${heureFin}`);
    } else {
      Logger.log(`Données invalides pour la ligne ${index + 2}. Événement ignoré.`);
    }
  });
}

5. La méthode MoSCoW

Avec MoSCoW, vous pouvez facilement hiérarchiser vos tâches. Google Sheets peut vous aider à organiser les tâches par catégories : Must (doit être fait), Should (devrait être fait), Could (pourrait être fait), Won’t (ne sera pas fait). L’automatisation Apps Script peut ensuite générer un rapport hebdomadaire sur la progression.

Script pour générer un rapport hebdomadaire :

Ce script va regrouper les tâches par catégorie (Must, Should, Could, Won’t) et envoyer un rapport par e-mail chaque semaine, résumant la progression des tâches.

function genererRapportMoSCoW() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('MoSCoW');
  const donnees = feuille.getDataRange().getValues();
  
  let must = [];
  let should = [];
  let could = [];
  let wont = [];

  // Regrouper les tâches par catégorie
  donnees.forEach((ligne, index) => {
    if (index === 0) return; // Ignorer la première ligne (en-têtes)
    const nomTache = ligne[0];
    const categorie = ligne[1];
    const statut = ligne[2];

    switch (categorie) {
      case 'Must (doit être fait)':
        must.push(`${nomTache} - Statut: ${statut}`);
        break;
      case 'Should (devrait être fait)':
        should.push(`${nomTache} - Statut: ${statut}`);
        break;
      case 'Could (pourrait être fait)':
        could.push(`${nomTache} - Statut: ${statut}`);
        break;
      case 'Won’t (ne sera pas fait)':
        wont.push(`${nomTache} - Statut: ${statut}`);
        break;
    }
  });

  // Générer le rapport
  const rapport = `
    Rapport Hebdomadaire MoSCoW :

    MUST (Doit être fait) :
    ${must.length > 0 ? must.join('\n') : 'Aucune tâche.'}

    SHOULD (Devrait être fait) :
    ${should.length > 0 ? should.join('\n') : 'Aucune tâche.'}

    COULD (Pourrait être fait) :
    ${could.length > 0 ? could.join('\n') : 'Aucune tâche.'}

    WON'T (Ne sera pas fait) :
    ${wont.length > 0 ? wont.join('\n') : 'Aucune tâche.'}
  `;

  // Envoyer le rapport par e-mail
  MailApp.sendEmail('votre.email@exemple.com', 'Rapport Hebdomadaire MoSCoW', rapport);
}

6. Le plan d’action

Créez un plan d’action détaillé dans Google Sheets, avec des dates cibles et des responsables assignés.

Ajoutez un script pour envoyer automatiquement des rapports hebdomadaires aux parties prenantes.

function envoyerRapportHebdomadaire() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Plan d’action');
  
  // Vérifier si la feuille existe
  if (!feuille) {
    Logger.log("La feuille 'Plan d’action' est introuvable.");
    return;
  }
  
  const donnees = feuille.getDataRange().getValues();
  
  const aujourdHui = new Date();
  const rapportParResponsable = {};

  // Parcourir chaque tâche du plan d’action
  donnees.forEach((ligne, index) => {
    if (index === 0) return; // Ignorer la première ligne (en-têtes)

    const tache = ligne[0];
    const responsable = ligne[1];
    const dateLimite = new Date(ligne[2]);
    const statut = ligne[3];

    // Calculer le temps restant avant la date limite
    const joursRestants = Math.ceil((dateLimite - aujourdHui) / (1000 * 60 * 60 * 24));

    // Si la tâche est "En cours" ou "Non commencée" et que la date limite est dans moins de 7 jours
    if (statut !== 'Terminé' && joursRestants <= 7 && joursRestants >= 0) {
      const infoTache = `Tâche: ${tache} | Date limite: ${dateLimite.toLocaleDateString()} | Statut: ${statut} | Jours restants: ${joursRestants}`;
      
      // Ajouter cette tâche au rapport du responsable
      if (!rapportParResponsable[responsable]) {
        rapportParResponsable[responsable] = [];
      }
      rapportParResponsable[responsable].push(infoTache);
    }
  });

  // Envoyer un rapport personnalisé à chaque responsable
  for (const responsable in rapportParResponsable) {
    const rapport = rapportParResponsable[responsable].join('\n');
    
    const message = `
    Bonjour ${responsable},

    Voici votre rapport hebdomadaire concernant les tâches du plan d'action pour cette semaine :

    ${rapport}

    Cordialement,
    L’équipe de gestion du projet
    `;

    // Envoyer l'email
    MailApp.sendEmail(responsable + '@exemple.com', 'Rapport hebdomadaire du plan d’action', message);
  }
}

7. Le rétroplanning


Le rétroplanning consiste à planifier en partant de la date de fin du projet et à calculer les dates clés en remontant le temps. Google Sheets peut être utilisé pour créer ce rétroplanning, et un script Google Apps Script peut automatiser le calcul des dates à partir de la date de fin du projet.

• La date de fin du projet est saisie manuellement pour la première tâche (“Livraison finale”).

• Les dates pour les autres tâches sont calculées automatiquement en fonction de leur durée et de la date de la tâche suivante.

function calculerRetroplanning() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Rétroplanning');
  const donnees = feuille.getRange('A2:C' + feuille.getLastRow()).getValues();
  
  // Obtenir la date de fin (dernière tâche avec une durée de 0)
  let dateFin = null;
  donnees.forEach(ligne => {
    if (ligne[1] === 0) {
      dateFin = new Date(ligne[2]); // La date de fin est dans la colonne C
    }
  });
  
  if (!dateFin) {
    Logger.log('La date de fin du projet n\'est pas définie.');
    return;
  }

  // Remonter le temps pour calculer les dates limites
  let dateReference = dateFin;
  for (let i = donnees.length - 1; i >= 0; i--) {
    const duree = donnees[i][1]; // Durée en jours
    if (duree > 0) {
      const dateCalculée = new Date(dateReference);
      dateCalculée.setDate(dateReference.getDate() - duree);
      donnees[i][2] = dateCalculée; // Stocker la date calculée
      dateReference = dateCalculée; // Mettre à jour la date de référence pour la tâche suivante
    }
  }
  
  // Insérer les nouvelles dates dans la feuille
  feuille.getRange('C2:C' + feuille.getLastRow()).setValues(donnees.map(ligne => [ligne[2]]));
  
  Logger.log('Rétroplanning mis à jour avec succès.');
}


Imaginons que la date de livraison finale soit le 31 décembre 2024. Voici à quoi ressemblera votre feuille après exécution du script :

8. La matrice RACI

La matrice RACI est un outil utile pour clarifier les rôles et responsabilités au sein d’une équipe pour chaque tâche ou projet. Elle se décompose ainsi :

Responsible : la personne qui fait le travail.

Accountable : la personne qui est propriétaire du résultat (souvent une seule personne).

Consulted : les personnes consultées pour leur expertise.

Informed : les personnes qui doivent être informées des résultats.

Utilisez Google Sheets pour définir les rôles et responsabilités de chaque membre de l’équipe avec la matrice RACI. Apps Script peut vous aider à automatiser la génération d’un document synthétisant les responsabilités de chacun dans Google Docs.

function genererDocumentRACI() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RACI');
  const donnees = feuille.getDataRange().getValues();
  
  // Créer un nouveau document Google Docs
  const doc = DocumentApp.create('Synthèse des Responsabilités - Matrice RACI');
  const body = doc.getBody();
  
  // Titre du document
  body.appendParagraph('Synthèse des Responsabilités - Matrice RACI').setHeading(DocumentApp.ParagraphHeading.HEADING1);
  
  // Parcourir les tâches et ajouter les informations dans le document
  donnees.forEach((ligne, index) => {
    if (index === 0) return; // Ignorer la première ligne (en-têtes)
    
    const tache = ligne[0];
    const responsable = ligne[1];
    const accountable = ligne[2];
    const consulted = ligne[3];
    const informed = ligne[4];
    
    // Ajouter une section pour chaque tâche
    body.appendParagraph(`Tâche : ${tache}`).setHeading(DocumentApp.ParagraphHeading.HEADING2);
    body.appendParagraph(`- Responsable : ${responsable}`);
    body.appendParagraph(`- Accountable : ${accountable}`);
    body.appendParagraph(`- Consulted : ${consulted}`);
    body.appendParagraph(`- Informed : ${informed}`);
    body.appendParagraph(''); // Saut de ligne
  });
  
  // Envoi du lien vers le document par email
  const url = doc.getUrl();
  MailApp.sendEmail('votre.email@exemple.com', 'Synthèse des responsabilités RACI', `Le document RACI a été généré. Vous pouvez le consulter ici : ${url}`);
}

9. La méthode Ivy Lee


La méthode Ivy Lee est une technique de gestion du temps qui vous demande de lister vos six tâches les plus importantes chaque jour et de vous concentrer sur leur exécution, une à la fois. Pour automatiser ce processus avec Google Sheets et Apps Script, nous pouvons créer un tableau de bord hebdomadaire qui résume les tâches accomplies et leur progression.

Créez une feuille de calcul avec vos 6 tâches principales chaque jour, et suivez votre progression. Google Sheets et Apps Script peuvent générer un tableau de bord quotidien et hebdomadaire de productivité basé sur ces données.

Le script récupère les tâches pour chaque jour de la semaine dans l’onglet “Tâches quotidiennes”. Il analyse ensuite les 6 tâches pour voir combien sont marquées comme accomplies (avec un “✓” au début de la tâche).

10. La méthode Johnny-Decimal

La méthode Johnny.Decimal est un système d’organisation qui utilise une classification numérique pour organiser des fichiers ou des informations. Elle est particulièrement utile pour organiser des dossiers, des fichiers ou des projets de manière claire et facile à retrouver. Voici une explication plus détaillée de cette méthode et un exemple d’automatisation avec Google Apps Script pour Google Drive.

Principe de la méthode Johnny.Decimal

Le système Johnny.Decimal se base sur la numérotation pour classer les éléments en catégories et sous-catégories. Chaque fichier ou document reçoit un identifiant unique basé sur ce schéma :

  1. Les domaines principaux (0-9) : Vous commencez par créer des domaines larges, chacun numéroté de 00 à 99. Par exemple :
  • 10-19 : Projets
  • 20-29 : Documentation
  • 30-39 : Finances
  1. Les sous-catégories (00-99) : Chaque domaine contient des sous-catégories plus spécifiques, numérotées de 00 à 99. Par exemple :
  • 10-19 Projets
    • 10.01 : Projets en cours
    • 10.02 : Projets terminés
  • 20-29 Documentation
    • 20.01 : Guides d’utilisation
    • 20.02 : Rapports techniques

Chaque document reçoit ainsi un identifiant unique basé sur la catégorie et la sous-catégorie à laquelle il appartient, ce qui rend l’organisation très claire. Par exemple, un fichier de projet pourrait être nommé : 10.01 – Rapport de projet 2024.

Automatisation avec Google Apps Script

Vous pouvez automatiser le renommage de vos fichiers Google Drive selon la méthode Johnny.Decimal. Voici un exemple de script qui renomme les fichiers dans un dossier Drive en suivant cette structure.

Script pour renommer des fichiers Google Drive avec la méthode Johnny.Decimal

function renommerFichiersJohnnyDecimal() {
  const dossierID = 'ID_DU_DOSSIER'; // Remplacer par l'ID du dossier Drive
  const dossier = DriveApp.getFolderById(dossierID);
  const fichiers = dossier.getFiles();

  // Configuration des catégories et sous-catégories Johnny.Decimal
  const categories = {
    'Projets': '10',
    'Documentation': '20',
    'Finances': '30'
  };

  const sousCategories = {
    'Projets en cours': '10.01',
    'Projets terminés': '10.02',
    'Guides d’utilisation': '20.01',
    'Rapports techniques': '20.02'
  };

  // Parcourir chaque fichier dans le dossier
  while (fichiers.hasNext()) {
    const fichier = fichiers.next();
    const nomActuel = fichier.getName();

    // Exemple simple : Renommer les fichiers en utilisant la sous-catégorie
    if (nomActuel.includes('Rapport')) {
      const nouveauNom = `${sousCategories['Projets en cours']} - ${nomActuel}`;
      fichier.setName(nouveauNom);
    } else if (nomActuel.includes('Guide')) {
      const nouveauNom = `${sousCategories['Guides d’utilisation']} - ${nomActuel}`;
      fichier.setName(nouveauNom);
    }
  }
}

La méthode Johnny.Decimal est un moyen puissant de structurer et d’organiser vos fichiers Google Drive. En automatisant le processus avec Google Apps Script, vous pouvez renommer rapidement vos fichiers en suivant une structure logique, facilitant ainsi la gestion des documents et leur recherche.

L’organisation est la clé de la productivité, que ce soit dans un cadre professionnel ou personnel. Grâce à l’intégration de Google Sheets et Google Apps Script, il est possible de structurer, automatiser et optimiser vos tâches de manière significative. En adoptant l’une ou plusieurs des méthodes d’organisation présentées dans cet article, vous pouvez non seulement mieux gérer vos projets, mais aussi gagner en efficacité au quotidien. Que ce soit avec le rétroplanning, la méthode Kanban ou la matrice RACI, chaque outil peut être adapté à vos besoins spécifiques.

Pour vous aider à commencer, j’ai préparé un Google Sheets qui illustre ces méthodes. N’hésitez pas à le consulter et à l’utiliser comme base pour vos propres projets :

Accédez au Google Sheets d’exemple ici.


Soutenez mon travail

Si cet article vous a été utile et que vous souhaitez soutenir mon travail, vous pouvez me remercier en faisant un don via PayPal. Chaque contribution est grandement appréciée et m’aide à continuer à partager des astuces et conseils sur ce blog. Merci pour votre soutien !

L’Atelier Informatique vous accompagne dans vos projets technologiques en vous proposant des tutoriels et des solutions pour optimiser vos tâches quotidiennes.