MÉTHODE EXPRESS ASSISTANT

🟣 TUTO COMPLET — UTILISE TES OUTILS COMME UNE AV STRATEGIQUE

Planning AV → Google Agenda → Dashboard AV

✅ TUTO ULTRA PRÉCIS — “Planning AV” → Google Agenda (100% gratuit)

0) Ce que tu vas obtenir

Une feuille Planning AV oĂč tu Ă©cris tes tĂąches
Un menu AV Sync dans Google Sheets
Un calendrier Google Agenda qui se remplit automatiquement
Un onglet Dashboard AV avec des chiffres (WOAOUH)

1) Créer le Google Sheet (structure exacte)

A) Onglet 1 : Planning AV

CrĂ©e un Google Sheet, puis renomme l’onglet (en bas) en :

✅ Planning AV

Ligne 1 (en-tĂȘtes obligatoires)

ColonneTitre exact
ATĂąche
BClient/Projet
CDate
DHeure
EDurée (minutes)
FLien
GStatut
HEventID
⚠ Important : respecte les accents et l’ordre.

2) Coller le code Apps Script (pas Ă  pas)

A) Ouvrir Apps Script

Dans ton Google Sheet :

  • Clique sur Extensions
  • Clique sur Apps Script

👉 Un nouvel onglet s’ouvre : “Apps Script”.

B) Supprimer l’ancien code

  • À gauche, clique sur Code.gs
  • Efface tout ce qu’il y a dans l’éditeur (CTRL+A puis Suppr)

C) Coller le code complet ci-dessous

Copie-colle exactement ce code :

/**
 * Google Sheets -> Google Calendar Sync (FREE)
 * Sheet: "Planning AV"
 * Columns:
 * A Tùche | B Client/Projet | C Date | D Heure | E Durée (minutes) | F Lien | G Statut | H EventID
 */

const SHEET_NAME = "Planning AV";
const CALENDAR_NAME = "AV - Planning";
const DEFAULT_TIME = "09:00";
const DEFAULT_DURATION = 60;

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu("AV Sync")
    .addItem("1) Créer/choisir le calendrier", "ensureCalendar")
    .addItem("2) Synchroniser vers Google Agenda", "syncToCalendar")
    .addToUi();
}

function ensureCalendar() {
  const cal = getOrCreateCalendar_();
  SpreadsheetApp.getUi().alert(`OK ✅ Calendrier prĂȘt : ${cal.getName()}`);
}

function syncToCalendar() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName(SHEET_NAME);
  if (!sh) throw new Error(`Feuille introuvable : ${SHEET_NAME}`);

  const cal = getOrCreateCalendar_();
  const lastRow = sh.getLastRow();
  if (lastRow < 2) {
    SpreadsheetApp.getUi().alert("Aucune ligne Ă  synchroniser (Planning AV est vide).");
    return;
  }

  const values = sh.getRange(2, 1, lastRow - 1, 8).getValues(); // A:H
  let updated = 0, created = 0, skipped = 0;

  values.forEach((row, i) => {
    const [task, client, dateVal, timeVal, durMin, link, status, eventId] = row;
    const rowIndex = i + 2;

    // Ignorer si tĂąche/date manquante
    if (!task || !dateVal) {
      skipped++;
      return;
    }

    // Ignorer si Statut = Fait / Terminé
    const statusTxt = String(status || "").toLowerCase();
    if (statusTxt === "fait" || statusTxt === "terminé" || statusTxt === "termine") {
      skipped++;
      return;
    }

    const start = toDateTime_(dateVal, (timeVal ? formatTime_(timeVal) : DEFAULT_TIME));
    const duration = Number(durMin) || DEFAULT_DURATION;
    const end = new Date(start.getTime() + duration * 60000);

    const title = client ? `AV ‱ ${client} — ${task}` : `AV ‱ ${task}`;

    const descParts = [];
    if (link) descParts.push(`Lien : ${link}`);
    if (status) descParts.push(`Statut : ${status}`);
    const description = descParts.join("\n");

    // Mise Ă  jour si EventID existe et valide
    if (eventId) {
      try {
        const ev = cal.getEventById(eventId);
        if (ev) {
          ev.setTitle(title).setDescription(description).setTime(start, end);
          updated++;
          return;
        }
      } catch (e) {
        // EventID invalide -> on recrée
      }
    }

    // Création si pas d'EventID
    const evNew = cal.createEvent(title, start, end, { description: description });
    sh.getRange(rowIndex, 8).setValue(evNew.getId()); // Colonne H = EventID
    created++;
  });

  SpreadsheetApp.getUi().alert(
    `Sync terminĂ© ✅\nCréés : ${created}\nMis Ă  jour : ${updated}\nIgnorĂ©s : ${skipped}`
  );
}

function getOrCreateCalendar_() {
  const cals = CalendarApp.getCalendarsByName(CALENDAR_NAME);
  if (cals && cals.length) return cals[0];
  return CalendarApp.createCalendar(CALENDAR_NAME);
}

function toDateTime_(dateInput, timeStr) {
  const d = (dateInput instanceof Date) ? dateInput : new Date(dateInput);
  const parts = String(timeStr).split(":");
  const hh = parseInt(parts[0] || "9", 10);
  const mm = parseInt(parts[1] || "0", 10);
  return new Date(d.getFullYear(), d.getMonth(), d.getDate(), hh, mm, 0);
}

function formatTime_(timeVal) {
  // timeVal peut ĂȘtre un "Date" si l'utilisateur a mis une heure via format d'heure
  if (timeVal instanceof Date) {
    const hh = String(timeVal.getHours()).padStart(2, "0");
    const mm = String(timeVal.getMinutes()).padStart(2, "0");
    return `${hh}:${mm}`;
  }
  // sinon string "09:30"
  return String(timeVal);
}

D) Enregistrer

Clique sur l’icĂŽne đŸ’Ÿ Enregistrer (ou CTRL+S)

E) Autoriser l’accùs (une seule fois)

  • Clique sur ExĂ©cuter (bouton ▶) une premiĂšre fois sur la fonction onOpen ou ensureCalendar
  • Google demande des autorisations :
  • “Autoriser”
  • choisir ton compte
  • confirmer
✅ Aprùs ça, c’est bon.

3) Lancer la synchronisation (le “WOAOUH”)

A) Recharger le Google Sheet

Ferme/rafraĂźchis la page du Sheet.

B) Nouveau menu

En haut, tu verras un menu :

✅ AV Sync

Clique :

  • CrĂ©er/choisir le calendrier et cliques sur ton compte gmail puis autoriser
  • Synchroniser vers Google Agenda
👉 Va dans Google Agenda : tu verras le calendrier AV - Planning et tes Ă©vĂ©nements.

4) Créer le Dashboard AV

A) Créer un nouvel onglet

En bas, clique sur + puis renomme l’onglet :

✅ Dashboard AV

B) OĂč mettre les chiffres (exemple simple)

Dans Dashboard AV :

  • Cellule A1 : Indicateur
  • Cellule B1 : Valeur

1) Total tĂąches (hors en-tĂȘtes)

En A2 : Total tĂąches

En B2 (formule avec ; ) :

=NBVAL('Planning AV'!A2:A)

2) Tùches terminées

En A3 : Tùches terminées

En B3 :

=NB.SI('Planning AV'!G2:G;"Terminé")+NB.SI('Planning AV'!G2:G;"Termine")+NB.SI('Planning AV'!G2:G;"Fait")

3) TĂąches Ă  faire

En A4 : TĂąches Ă  faire

En B4 :

=NB.SI('Planning AV'!G2:G;"À faire")+NB.SI('Planning AV'!G2:G;"A faire")

4) Taux d’avancement %

En A5 : Avancement %

En B5 :

=B4/B2

Puis formater B5 en Pourcentage.

Pour formater la cellule B5 en pourcentage dans Google Sheets, suivez ces étapes :

  • SĂ©lectionnez la cellule : Cliquez sur la cellule B5.
  • Ouvrez le menu Format : Allez dans le menu en haut, cliquez sur Format.
  • Choisissez Nombre : Dans le menu dĂ©roulant Format, survolez l'option Nombre.
  • SĂ©lectionnez Pourcentage : Dans le sous-menu Nombre, cliquez sur Pourcentage.

5) Total minutes planifiées

En A6 : Minutes planifiées

En B6 :

=SOMME('Planning AV'!E2:E)

6) Heures planifiées

En A7 : Heures planifiées

En B7 :

=(B6/60)
✅ VoilĂ  ton tableau de bord chiffrĂ©.

5) Exercice “preuve” (livrable)

  • Remplir 5 lignes dans Planning AV
  • Lancer AV Sync → Synchroniser
  • Ouvrir Google Agenda et vĂ©rifier
  • Statut : mettre 1 tĂąche en TerminĂ©
  • Regarder Dashboard AV → le chiffre change
📌 Livrable :
  • capture Planning AV
  • capture Google Agenda
  • capture Dashboard AV

đŸ§© PARTIE 1 — PUBLICATION LINKEDIN (OU GROUPE FACEBOOK AV)

🎯 Objectif

Apprendre Ă  parler de son travail comme une pro,

📌 RÈGLES À RESPECTER

  • ✅ Parler comme si c’était ta mĂ©thode
  • ✅ Mettre en avant la valeur pour un client
  • ✅ Rester simple et claire

🧠 STRUCTURE À SUIVRE (SANS TEXTE PRÉ-ÉCRIT)

Ton post doit contenir :

  • 1ïžâƒŁ Une phrase d’accroche
    → quelque chose que ton futur client peut comprendre
  • 2ïžâƒŁ Une explication simple de ta mĂ©thode d’organisation
    → comment tu pilotes ton travail
    → sans jargon technique
  • 3ïžâƒŁ Ce que le client gagne avec cette mĂ©thode
    (exemples : visibilité, sérénité, clarté, suivi)
  • 4ïžâƒŁ Une phrase de conclusion professionnelle

❓ QUESTIONS POUR T’AIDER À ÉCRIRE

  • Qu’est-ce que cette mĂ©thode change dans ta façon de travailler ?
  • Qu’est-ce qu’un client verrait diffĂ©remment grĂące Ă  ce systĂšme ?
  • Pourquoi cette organisation est rassurante pour un client ?
👉 RĂ©ponds Ă  ces questions avec tes mots, puis transforme-les en post.

📌 RÈGLES DE PUBLICATION

  • Longueur : 5 Ă  10 lignes maximum
  • Ton : professionnel, simple, posĂ©
  • Plateforme : LinkedIn ou groupe Facebook AV
✏ LIVRABLE ATTENDU (PARTIE 1)
  • 1 post publiĂ©
  • 1 capture d’écran de la publication

🟣 PARTIE 2 — MAIL À CATHYA (CLIENT À CONVAINCRE)

🎯 OBJECTIF

S’entraüner à :

  • expliquer sa mĂ©thode Ă  un client
  • convaincre sans vendre
  • mettre en avant la clartĂ© et l’efficacitĂ©

📌 CONTEXTE DE L’EXERCICE

Cathya est une cliente :

  • dĂ©jĂ  organisĂ©e
  • qui utilise un autre outil
  • qui ne cherche pas un gadget
  • mais une mĂ©thode fiable et claire

📌 RÈGLES À RESPECTER

  • ❌ Ne pas vendre un outil
  • ❌ Ne pas critiquer l’outil du client
  • ❌ Ne pas faire un mail trop long
  • ✅ Parler mĂ©thode, pas technique
  • ✅ Parler rĂ©sultat, pas fonctionnalitĂ©s
  • ✅ Être professionnelle et respectueuse

🧠 STRUCTURE À SUIVRE (GUIDE, PAS MODÈLE)

Ton mail doit contenir :

  • 1ïžâƒŁ Une phrase d’introduction professionnelle
    → pourquoi tu Ă©cris
  • 2ïžâƒŁ Une prĂ©sentation simple de ta mĂ©thode d’organisation
    → ce que tu pilotes
    → comment tu suis l’avancement
  • 3ïžâƒŁ Ce que le client voit concrĂštement
    (exemples : tableau de bord, indicateurs, visibilité)
  • 4ïžâƒŁ Une ouverture
    → proposer d’expliquer
    → sans forcer

❓ QUESTIONS POUR T’AIDER À ÉCRIRE

  • Si tu Ă©tais cliente, qu’est-ce qui te rassurerait ?
  • Qu’est-ce que ton tableau de bord permet de comprendre rapidement ?
  • Pourquoi cette mĂ©thode est plus claire qu’un simple Ă©change de messages ?
👉 RĂ©ponds Ă  ces questions avant d’écrire ton mail.
✏ LIVRABLE ATTENDU (PARTIE 2)
  • 1 mail rĂ©digĂ© (envoyĂ© ou non)
  • Pas besoin de rĂ©ponse du client
  • Le but est l’argumentation
🌈 PHRASE VISION BOARD — POSTURE PRO
“Je sais expliquer ma mĂ©thode, montrer ma valeur et convaincre avec clartĂ©.”

❓ FAQ — Je suis bloquĂ©e, que faire ?

MĂȘme les assistants virtuels expĂ©rimentĂ©s rencontrent parfois un petit blocage lorsqu'ils dĂ©couvrent un nouvel outil. Bonne nouvelle : dans la plupart des cas, la solution prend moins de 2 minutes. Prends ton temps et suis simplement les Ă©tapes ci-dessous.

❌ Je ne vois pas le menu "AV Sync"

Si le menu n'apparaßt pas en haut de ton Google Sheet, suis ces étapes :

  1. Assure-toi d'avoir bien enregistrĂ© le script (CTRL + S ou l'icĂŽne đŸ’Ÿ).
  2. Retourne sur ton Google Sheet.
  3. Actualise complĂštement la page (touche F5 ou bouton Actualiser de ton navigateur).
  4. Patiente quelques secondes.
  5. Si le menu n'apparaĂźt toujours pas, ferme le Google Sheet puis rouvre-le.
✅ Dans la majoritĂ© des cas, le menu apparaĂźt simplement aprĂšs avoir rechargĂ© la page.

❌ Google me demande des autorisations

C'est normal lors de la premiĂšre utilisation du script.

  1. Clique sur Autoriser.
  2. Sélectionne ton compte Google.
  3. Lis les autorisations demandées.
  4. Clique sur Autoriser pour continuer.
✅ Cette Ă©tape ne sera gĂ©nĂ©ralement plus demandĂ©e ensuite.

❌ Les Ă©vĂ©nements n'apparaissent pas dans Google Agenda

Si rien ne se crée dans ton agenda :

  1. Retourne dans ton onglet Planning AV.
  2. Vérifie qu'au moins une ligne contient une tùche et une date.
  3. Clique sur AV Sync → Synchroniser vers Google Agenda.
  4. Ouvre ensuite Google Agenda.
  5. Dans la colonne de gauche, vérifie que le calendrier AV - Planning est bien visible et coché.
✅ Si le calendrier est dĂ©cochĂ©, les Ă©vĂ©nements existent mais restent simplement masquĂ©s.

❌ Les heures sont incorrectes

Si ton agenda affiche une heure différente de celle que tu as saisie :

  1. Ouvre Google Agenda.
  2. Clique sur la roue dentĂ©e ⚙ en haut Ă  droite.
  3. Clique sur ParamĂštres.
  4. Dans la partie Fuseau horaire, regarde le fuseau actuellement utilisé.
  5. Si tu travailles avec des clients français et que tu saisis les heures françaises dans ton tableau, choisis Europe/Paris.
  6. Retourne ensuite sur ton Google Sheet.
  7. Relance AV Sync → Synchroniser vers Google Agenda.
💡 Il n'est gĂ©nĂ©ralement pas nĂ©cessaire de supprimer le script. Le problĂšme vient le plus souvent du rĂ©glage de l'heure.

❌ Une tñche ne se synchronise pas

Le script ne crée un événement que si les informations indispensables sont présentes.

  1. Vérifie que la colonne Tùche contient bien un texte.
  2. Vérifie que la colonne Date est remplie.
  3. Regarde la colonne Statut.
  4. Si le statut est Fait ou Terminé, le script ignore volontairement cette ligne.
  5. Relance ensuite la synchronisation.
✅ Les tĂąches terminĂ©es ne sont pas envoyĂ©es dans Google Agenda afin de garder un planning propre.

❌ J'ai modifiĂ© une tĂąche mais Google Agenda ne change pas

Le script ne fonctionne pas automatiquement aprĂšs chaque modification.

  1. Modifie ta tĂąche dans le tableau.
  2. Enregistre si nécessaire.
  3. Clique sur AV Sync.
  4. Clique sur Synchroniser vers Google Agenda.
  5. Actualise ensuite Google Agenda.
✅ Pense à relancer la synchronisation aprùs chaque modification importante.

❌ Mon Dashboard ne change pas

Le tableau de bord utilise les données de ton Planning AV.

  1. Retourne dans l'onglet Planning AV.
  2. VĂ©rifie que tes statuts sont bien Ă©crits exactement comme dans le cours (À faire, Fait ou TerminĂ©).
  3. Retourne ensuite dans l'onglet Dashboard AV.
  4. Patiente quelques secondes : Google Sheets recalcule généralement les formules automatiquement.
✅ Une simple faute d'orthographe dans un statut peut empĂȘcher un indicateur de se mettre Ă  jour.

🟣 Le conseil de Cathya

Lorsque quelque chose ne fonctionne pas du premier coup, ne recommence pas tout depuis le début. Prends une grande respiration, relis les étapes une par une et cherche le petit détail qui manque.

Dans ce métier, les meilleurs assistants virtuels ne sont pas ceux qui ne rencontrent jamais de problÚmes
 Ce sont ceux qui savent les résoudre avec méthode.

C'est exactement ce que tu es en train d'apprendre.