Problème d'Envoi d'e-mail sur Sheets
p
Bonjour,
j'ai crée un script pour envoyé des e-mail automatique lors d'une modification ou lorsque je coche la casse en E276.
Mais rein ne ce passe .
pouvez vous me dire ou est mon erreur svp.
function emailOnEdit(event) {
var feuille = event.source.getActiveSheet();
var cellule = event.source.getActiveRange();
if (cellule.getColumn() != 8 && cellule.getColumn() != 6) return;
if (cellule.getValue() == 'MANQUANT' || cellule.getValue() == 'DETERIOREE') {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('feuille 1');
var emailAddress = sheet1.getRange(2, 1).getValue();
var subject = sheet1.getRange(2, 2).getValue();
var message = sheet1.getRange(2, 3).getValue();
MailApp.sendEmail({
to: emailAddress + ',dasilvaads69360@gmail.com',
subject: subject,
htmlBody: message + '<b>' + tableHTMLplus(feuille.getRange(cellule.getRow(),1,1,feuille.getLastColumn()))
});
}
if (cellule.getRow() == feuille.getLastRow() && cellule.getValue() == true) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('feuille 1');
var emailAddress = sheet1.getRange(2, 1).getValue();
var subject = sheet1.getRange(2, 2).getValue();
var message = sheet1.getRange(2, 3).getValue();
var data = feuille.getRange('A1:H'+feuille.getLastRow()).getValues().filter(r => (r[7] == 'MANQUANT' || r[7] == 'DETERIOREE'));
MailApp.sendEmail({
to: emailAddress + ',dasilvaads69360@gmail.com',
subject: subject,
htmlBody: message + '<b>' + tableHTMLsimple(data)
});
}
}
function tableHTMLsimple(data) {
var tableformat = 'cellspacing="2" cellpadding="2" border="1" style="width:100%;border-collapse:collapse;border:1px solid #ccc"';
if (!data || data.length === 0) {
return '<table ' + tableformat + ' ></table>';
}
var rows = data.map(r => '<tr><td>' + r.join('</td><td>') + '</td></tr>');
return '<table ' + tableformat + ' >\n' + rows.join('\n') + '</table>';
}
function reInitialiser() {
const zones = ['B3', 'C3', 'D3', 'B5', 'G2','G5', 'D5', 'H5', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8','I8','G272' ]; // Les cellules à effacer
const colonnes = ['F']; // Les colonnes à partir desquelles les cellules doivent être effacées
const ligne = 11; // Le numéro de ligne à partir duquel les cellules doivent être effacées
const derniereligne = 271; // La dernière ligne jusqu'à laquelle les cellules doivent être effacées
const ss = SpreadsheetApp.getActiveSpreadsheet();
const feuilles = ['Inventaire VSAV', 'Inventaire FPT', 'Inventaire VTUTP', 'Inventaire VLCDG', 'Inventaire LOTS PROMPT SECOURS', 'Inventaire LOTS DE RELEVAGE (LREL)']; // Les noms des feuilles de calcul sur lesquelles la réinitialisation doit être effectuée
feuilles.forEach(feuille => {
var f = ss.getSheetByName(feuille);
var der = f.getLastRow();
zones.forEach(z => f.getRange(z).clearContent());
colonnes.forEach(c => f.getRange(c + ligne + ':' + c + derniereligne).clearContent());
});
}
function createTrigger() {
var triggerDay = ScriptApp.WeekDay.WEDNESDAY; // Définir le jour de la semaine (Mercredi)
var triggerHour = 12; // Définir l'heure (12h)
ScriptApp.newTrigger('reInitialiser')
.timeBased()
.onWeekDay(triggerDay)
.atHour(triggerHour)
.create();
Logger.log('Déclencheur créé pour la réinitialisation tous les mercredis à 12h');
}
createTrigger(); // Appel de la fonction createTrigger pour créer le déclencheur
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('G11:G266');
var dateValue = sheet.getRange('A1').getValue();
var day = dateValue.getDay();
if (day === 3) {
range.setValue('PRÉSENT');
}
}ci joint le lien au fichier: https://docs.google.com/spreadsheets/d/1S9Ub8Lq_tTb548bULJdlJ-PQKCTo18ppQL7ddIvrp4M/edit?usp=sharing
evolmMembre dévoué
- Messages
- 688
- Excel
- 2010 - Gsheets
- Inscrit
- 14/08/2018
- Emploi
- responsable d'exploitation logistique
A tester mais vous avez la condition suivante
if (cellule.getColumn() != 8 && cellule.getColumn() != 6) return;Elle vérifie les colonnes 6 et 8 soit F et H
Comme c'est la colonne E que vous cochez, la condition ne sera jamais vraie.
Il faudrait modifier une des valeurs par 5