Script sur google sheet
dossulli04
dossulli04
- Messages postés
- 2
- Date d'inscription
- mardi 21 septembre 2021
- Statut
- Membre
- Dernière intervention
- 21 septembre 2021
dossulli04
- Messages postés
- 2
- Date d'inscription
- mardi 21 septembre 2021
- Statut
- Membre
- Dernière intervention
- 21 septembre 2021
A voir également:
- Script impression google sheet
- Google Sheet: Script d'impression - Forum - Bureautique
- Problème Impression Google Sheet ✓ - Forum - Google Docs
- Aperçu vierge dans google sheets avant l'impression - Forum - Google Docs
- Accès au script sous Google Sheets - Forum - Google Docs
- Enregistrer les paramètres d'impression - Forum - Google Docs
2 réponses
jordane45
21 sept. 2021 à 11:23
- Messages postés
- 35767
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 1 juillet 2022
21 sept. 2021 à 11:23
Bonjour,
Visiblement, il est possible de créer/supprimer des "trigger" via du code
https://developers.google.com/apps-script/guides/triggers/installable
par exemple
Visiblement, il est possible de créer/supprimer des "trigger" via du code
https://developers.google.com/apps-script/guides/triggers/installable
par exemple
function createOnEditTrigger(){ ScriptApp.newTrigger("sendEmailReport") // Run the sendEmailReport function. .forSpreadsheet(SpreadsheetApp.getActive()) // Create the trigger in this spreadsheet. .onEdit() // We want to set up an Edit trigger. .create(); // Create it! }
dossulli04
Modifié le 21 sept. 2021 à 14:13
- Messages postés
- 2
- Date d'inscription
- mardi 21 septembre 2021
- Statut
- Membre
- Dernière intervention
- 21 septembre 2021
Modifié le 21 sept. 2021 à 14:13
Merci Jordane,
ça à l'air pas mal tout ça, alors désolé par contre je suis un peu perdu, pas du tout l'habitude de coder quoi que ce soit.
Donc si je comprend bien, j'ouvre mon fichier google sheet initial, j'ouvre l'éditeur de script, je retrouve mon script qui fonctionne bien, je l'édite en y ajoutant à la suite les 5 / 6 lignes que tu m'indiques et j'enregistre.
Si ça fonctionne en supprimant mon déclencheur manuel, c'est que je peux faire des copies de ce fichiers et ça fonctionnera aussi ?
Mon déclencheur manuel est paramétrer comme ceci : "notification", "sur la feuille de calcul", "lors d'une modification", "immédiatement".
Mon script actuel est :
<code>var email ="xxxxxx@gmail.com";
var range = "E8:H8";
function onOpen(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Sousmenu = [];
Sousmenu.push({name: "Notif cellule", functionName: "Message"});
ss.addMenu("Info Notif", Sousmenu);
}
function Message(){
Browser.msgBox ('Cellule programmée : '+range +'. Email programmé :' +email);
}
function get_cell_value(sheet, col, row) {
var cellAsRange = sheet.getRange(row, col);
var valuesInArray = cellAsRange.getValues();
return valuesInArray[0][0];
}
function Notification(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var editRange = sheet.getActiveRange();
var editRow = editRange.getRow();
var editCol = editRange.getColumn();
var testrange = sheet.getRange(range);
var rangeRowStart = testrange.getRow();
var rangeRowEnd = rangeRowStart + testrange.getHeight()-1;
var rangeColStart = testrange.getColumn();
var rangeColEnd = rangeColStart + testrange.getWidth()-1;
if (editRow >= rangeRowStart && editRow <= rangeRowEnd
&& editCol >= rangeColStart && editCol <= rangeColEnd)
{
var valeurAGauche = get_cell_value(sheet, editCol -1, editRow);
var nomclient = get_cell_value(sheet, 2, 4);
var objet = 'Modification fiche atelier '+ valeurAGauche +' - ' + nomclient;
var body = 'Le dossier ' + valeurAGauche +' - ' + nomclient +' a été mis à jour : << ' + editRange.getValue() + ' >>' + ' URL de la fiche : ' + ss.getUrl();
MailApp.sendEmail(email, objet, body);
}
}
ça à l'air pas mal tout ça, alors désolé par contre je suis un peu perdu, pas du tout l'habitude de coder quoi que ce soit.
Donc si je comprend bien, j'ouvre mon fichier google sheet initial, j'ouvre l'éditeur de script, je retrouve mon script qui fonctionne bien, je l'édite en y ajoutant à la suite les 5 / 6 lignes que tu m'indiques et j'enregistre.
Si ça fonctionne en supprimant mon déclencheur manuel, c'est que je peux faire des copies de ce fichiers et ça fonctionnera aussi ?
Mon déclencheur manuel est paramétrer comme ceci : "notification", "sur la feuille de calcul", "lors d'une modification", "immédiatement".
Mon script actuel est :
<code>var email ="xxxxxx@gmail.com";
var range = "E8:H8";
function onOpen(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Sousmenu = [];
Sousmenu.push({name: "Notif cellule", functionName: "Message"});
ss.addMenu("Info Notif", Sousmenu);
}
function Message(){
Browser.msgBox ('Cellule programmée : '+range +'. Email programmé :' +email);
}
function get_cell_value(sheet, col, row) {
var cellAsRange = sheet.getRange(row, col);
var valuesInArray = cellAsRange.getValues();
return valuesInArray[0][0];
}
function Notification(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var editRange = sheet.getActiveRange();
var editRow = editRange.getRow();
var editCol = editRange.getColumn();
var testrange = sheet.getRange(range);
var rangeRowStart = testrange.getRow();
var rangeRowEnd = rangeRowStart + testrange.getHeight()-1;
var rangeColStart = testrange.getColumn();
var rangeColEnd = rangeColStart + testrange.getWidth()-1;
if (editRow >= rangeRowStart && editRow <= rangeRowEnd
&& editCol >= rangeColStart && editCol <= rangeColEnd)
{
var valeurAGauche = get_cell_value(sheet, editCol -1, editRow);
var nomclient = get_cell_value(sheet, 2, 4);
var objet = 'Modification fiche atelier '+ valeurAGauche +' - ' + nomclient;
var body = 'Le dossier ' + valeurAGauche +' - ' + nomclient +' a été mis à jour : << ' + editRange.getValue() + ' >>' + ' URL de la fiche : ' + ss.getUrl();
MailApp.sendEmail(email, objet, body);
}
}