Я не знаю, является ли это глупостью или хитростью, но, попробовав пару скриптов и попытавшись изменить их, я не могу заставить это работать.
Я просто хочу отправить уведомление по электронной почте, когда наступит время (в минутах), на основе функции NOW (), без ввода данных пользователем, все выполняется автоматически, даже если лист и таблица закрыты.
Другими словами, когда наступает срок выполнения, значение ячейки (через формулу) преобразуется из «ОК» в «ТРЕВОГА», я хочу, чтобы электронное письмо запускалось автоматически, когда значение вычисляемой ячейки равно « ALERT "
https://docs.google.com/spreadsheets/d/14e9M3fo2p0E4k0raOe6xAuVP5OVfcIYycxHIPimIud0/edit?usp=sharing
Я пытался принудительно пересчитать формулу для имитации ввода пользователя через set.value, но безуспешно
function checkValue(e){
var sp = PropertiesService.getScriptProperties();
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var valueToCheck = sheet.getRange("S2").getValue();
var oldValue = sp.getProperty("S2") || 0;
if (valueToCheck == "ALERTE" && valueToCheck != oldValue) {
var sheetname = ss.getActiveSheet().getName();
var user = sheet.getRange("F7").getValue();
var Toemail = 'email@domain.com';
var subject = '❗ ' + 'RAPPEL' + ' ❗' + ' Nouvelle DA à valider ! ' + sheetname ;
var body = 'Vous avez une nouvelle DA à valider ' + sheetname + ' de la part de ' + user + ' à compléter ici ' + SpreadsheetApp.getActiveSpreadsheet().getUrl() + '#gid=' + SpreadsheetApp.getActiveSpreadsheet().getSheetId();
GmailApp.sendEmail(Toemail, subject, body, {'from':'notification@DOMAIN.com'});
sp.setProperty("S2", valueToCheck);
}
}
Триггер выполняется правильно (и электронная таблица настроена на обновление каждую минуту, часовой пояс тоже правильный), но ничего не происходит, но если я вручную введу значение ALERTE, электронное письмо будет отправлено ...