Une fois la colonne A cochée, il faudra aller au menu et faire
Charge le script, puis ferme le fichier et ouvre le à nouveau pour faire fonctionner onInstall et onOpen
Limite aussi le nombre de lignes dans les onglets
Mets dans archives les mêmes en-têtes sans les formules arrayformula car je copie en bloc toute la ligne.
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
ui.createMenu('***E-mailing***')
.addItem('Lancer les courriels !', 'envoi')
.addToUi();
}
function onEdit(event){
var feuille = event.source.getActiveSheet();
var cel = event.source.getActiveRange();
// archivage
if ((columnToLetter(cel.getColumn()) == 'M') && (feuille.getName() == 'CORDAGE')){
if (cel.getValue()){
var archive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ARCHIVES");
archive.insertRowBefore(2);
var plage = feuille.getRange('A' + cel.getRow() + ':M' + cel.getRow());
plage.copyTo(archive.getRange('A' + 2), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
Browser.msgBox('Ligne archivée !');
feuille.deleteRow(cel.getRow());
}
}
}
function envoi(){
var doc = SpreadsheetApp.getActiveSpreadsheet();
var feuille = doc.getSheetByName('CORDAGE');
for (var ligne=2; ligne<=feuille.getLastRow();ligne++){
if (feuille.getRange('A'+ligne).getValue()){
var destinataire = feuille.getRange('C'+ligne).getValue();
var objet = 'Votre raquette ' + feuille.getRange('E'+ligne).getValue();
var corps = 'Bonjour ' + feuille.getRange('B'+ligne).getValue() + '<br><br>Vous pouvez venir cherchercher votre raquette en objet. Nous avons terminé les travaux de cordage.<br><br>Cordialement';
GmailApp.sendEmail(destinataire, objet, corps, {htmlBody: corps});
Browser.msgBox('Message envoyé !');
feuille.getRange('A'+ligne).setValue(false)
var d = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy à hh:mm")
feuille.getRange('n'+ligne).setValue(d)
}
}
}
function columnToLetter(column) {
var temp, letter = '';
while (column > 0) {
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
column = (column - temp - 1) / 26;
}
return letter;
}