Avant de commencer les exercices, entraînez vous avec un quiz !
Création d'un Google Script via la drive ou l'application Google Sheets
Création d'une fonction Add_minute(date, nb_min) qui ajoute des minutes à une date passée en paramètre de la fonction puis qui renseigne le log ( journal ) d'exécution
Création d'une fonction Main qui appelle la fontion Add_Minutes avec comme paramètres la date de maintenant et 60 minutes
Visualisation du log lors de l'exécution de la fonction
Définition du script en librairie (mise à jour version) & mise de commentaire
Copier ce modèle Google Sheets : Modèle_Exercices ==> ATTENTION : ce modèle sera utilisé pour tous les autres exercices, gardez le en favoris
Accès à l'interface GAS via l'entrée de menu "Outils / Éditeur de script"
Enregistrement d'une macro via l'entrée de menu "Enregistrement d'une macro". Vous pouvez enregistrer n'importe quelle action effectuée dans le Google Sheet
Création & Suppression d'un fichier script via l'interface GAS depuis un accès via l'entrée de menu "Outils / Éditeur de script"
Création d'un fichier & copie de la fonction enregistrée automatiquement dans ce nouveau fichier puis suppression du fichier créé automatiquement (i.e. via l'enregistrement d'une macro)
Récupération de la valeur de la cellule B4 ( SpreadsheetApp, getSheetByName,getRange) & enregistrement de cette valeur dans le log(Logger.log)
Ecriture (setValue) de la valeur de la cellule B4 dans la cellule E4
Déclaration des objets speadsheet, sheet et range en variables globales (SpreadsheetApp, getSheetByName, getRange) . La variable récupérée avec getRange doit comprendre les cellules B9:C16
Récupération des valeurs des cellules B9:C16 dans un tableau 2D
Parcours du tableau (Boucle for) : Enregistrement dans le log & Ecriture dans les cellules E9:F16 (setValue) de chaque valeur
Dans le script, ajout de la librairie créée dans l'exercice n°1
Récupération des valeurs des cellules B23:C29 dans un tableau 2D
Récupération du nombre de minutes à ajouter depuis la cellule B20
Parcours du tableau des données du Sheets (Boucle for) :
Si le type de la valeur du tableau est de type Date (Récupération du type de la variable avec MaDonnee instanceof Date) alors :
Ajout du nombre de minutes à la valeur du tableau avec appel de la fonction Add_Minute de la libraire
Enregistrement dans le log de chaque nouvelle valeur
Copie du tableau dans les cellules E23:F29 en une seule fois avec la fonction setValues()
Insertion d'une formule (setFormula) dans la cellule B33
Mise en forme de la cellule B33 avec un fond bleu clair (setBackground), des bordures noires (setBorder), une fusion des cellules de B33:E33 (merge)
Depuis le google Sheet principal (modèle récupéré à l'exercice 2), création d'une fonction permettant :
De récupérer des données d'un autre Spreadsheet (openByUrl) accessible via ce lien : database
D'écrire ces données dans la plage de cellules B9:E
Afin que la fonction précédente s'exécute à chaque ouverture du sheet principal : création d'un déclencheur onOpen utilisant la fonction précédente
Création du déclencheur
Définition des paramètres (fonction, type, source)
Création d'une fonction permettant :
De créer une date donnée en fonction (Switch case / if) d'une valeur passée en paramètre :
Si "Définition projet" alors date=maintenant+1 mois
Si "Mise en place des moyen" alors date=maintenant+2 semaines
Si "Phase de test" alors date=maintenant+21 jours
Si "En production" alors date=maintenant+100 jours
Sinon date = maintenant
De retourner/renvoyer cette date
Afin que la fonction précédente s'exécute à chaque modification de date, intégration de la fonction en tant que déclencheur :
Création d'un déclencheur OnEdit
Utilisant la fonction précédente
Permettant d’écrire la date dans la plage G9:G en fonction de la valeur de la plage F9:F correspondante
Exemple : si F9 = "Définition projet" alors G9 = maintenant+1 mois
Création d'une fonction d'ajout de lignes permettant :
D'ajouter des lignes avec la mise en forme des lignes précédentes, dans l'onglet/la feuille EXERCICE 3/4/5/6
De demander à l'utilisateur combien de lignes sont à ajouter
Création d'une fonction de suppression de lignes permettant :
De supprimer les lignes sélectionnées dans la colonne A de la feuille EXERCICE 3/4/5/6
D'alerter l'utilisateur pour qu'il confirme la suppression
Création d'une fonction d’écriture à distance permettant :
D'accéder à ce document Google Sheet : database-input
ATTENTION : ne pas copier ce Google Sheets. Il sera commun à tous les utilisateurs
D'écrire les données de l'onglet EXERCICE 3/4/5/6 à la suite des données de l'onglet INPUT du document database-input
Création d'une fonction avec la librairie GmailApp permettant d'envoyer la liste des données de l'onglet EXERCICE 3/4/5/6 au destinataire concerné : chaque ligne de l'onglet EXERCICE 3/4/5 se verra attribué une adresse mail (i.e. un destinataire) et lors de l'exécution de la fonction, chaque ligne fera l'objet d'un mail au destinataire comprenant les données de la ligne
Création d'une entrée de menu permettant d'exécuter la fonction d'envoi de mail
Création d'une fonction de récupération de pièce jointe à distance permettant :
D'accéder au dernier mail avec pièce jointe de type CSV en provenance d'un email (ex : dupont@gmail.com) passé en paramètre de la fonction
De récupérer le fichier CSV en pièce jointe
D'enregistrer le fichier CSV dans un dossier drive
De retourner un tableau de données 2D basé sur les données du fichier CSV
Création d'une fonction d'import de données passées en paramètre permettant d'importer des données dans l'onglet EXERCICE 3/4/5/6 en filtrant sur les identifiants existants (i.e. si l'identifiant à importer est déjà présent dans les données de l'onglet EXERCICE 3/4/5/6, il ne faut pas l'importer)
Création d'une fonction globale permettant :
D'utiliser les deux fonctions précédentes avec un mail à passer en paramètre puis le résultat de la 1ère fonction sera passé en paramètre de la 2ème fonction
De supprimer le fichier CSV placé dans le dossier drive lors de l'appel de la 1ère fonction
Création d'une fonction de qui parcourt le tableau de l'onglet EXERCICE 7 et qui créé des événements dans votre calendrier. Cette fonction indiquera l'identifiant de l'événement créé dans la colonne G pour chaque ligne
Création d'une fonction qui parcourt le tableau de l'onglet EXERCICE 7 et qui supprime l'identifiant de l’événement si ce dernier n'existe pas dans les identifiants de la liste des événements de votre calendrier
Copier le modèle Google Forms suivant : Modèle Google Forms Exercice 8
Création d'une fonction d'initialisation de la question "Choisir un créneau" à partir des données de la plage A2:A de l'onglet EXERCICE 8 du Google Sheets Modèle_Exercices
Création d'une fonction permettant :
De récupérer les réponses du dernier répondant dans le Google Forms
De mettre à jour les statuts des créneaux dans la plage B2:A de l'onglet EXERCICE 8 du Google Sheets Modèle_Exercices
De mettre à jour les créneaux disponibles dans la question "Choisir un créneau" du Google Forms
D'enregistrer la dernière réponse dans l'onglet EXERCICE 8 du Google Sheets
Création d'un déclencheur exécutant la fonction précédente lors de l'envoi d'une réponse au Google Forms
Dans cette exercice, nous tenterons de créer un WebApp intégrée dans un sidebar. Cette Web App devra :
Récupérer les tâches terminées de Google Tasks et les placer dans une liste déroulante
Faire apparaître la description de la tâche sélectionnée lorsque l'utilisateur changera de tâche dans la liste déroulante
Posséder un champ pour indiquer un nombre d'heure passées pour la tâche sélectionnée
Posséder un bouton permettant d'enregistrer l'identifiant, le titre, la description et le nombre d'heure saisi de la tâche sélectionnée
Rafraîchir la liste déroulante après enregistrement des données
Vous pouvez visionnez le résultat attendu ici : Side Bar x WebApp x Google Sheets
Dans cette exercice, nous tenterons de créer un WebApp intégrée dans un Google Site. Cette exercice sera similaire à l'exercice 9 mais devra intégrer la Web App dans un Google Site. Vous devrez donc utiliser la fonction doGet(e) créer un Google Site