Avec la suppression
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('↓ M E N U ↓')
.addItem('👉 Masquer semaines passées', 'masquer')
.addItem('👉 Tout afficher', 'toutAfficher')
.addSeparator()
.addItem('👉 Ajouter un étudiant', 'ajoutEtudiant')
.addItem('👉 Supprimer un étudiant', 'suppEtudiant')
.addToUi();
masquer();
}
// la comparaison se fait sur la date en J3
function masquer() {
var doc=SpreadsheetApp.getActiveSpreadsheet()
var feuilles=doc.getSheets()
var today = Utilities.formatDate(new Date, "GMT+1", "yyyy-MM-dd")
feuilles.forEach(function(feuille){
if (feuille.getName()!='Template'){
var d = Utilities.formatDate(feuille.getRange('J3').getValue(), "GMT+1", "yyyy-MM-dd")
if (!feuille.isSheetHidden() && d<today){feuille.hideSheet()}
}
})
}
function toutAfficher(){
var doc=SpreadsheetApp.getActiveSpreadsheet()
var feuilles=doc.getSheets()
feuilles.forEach(function(feuille){
if (feuille.isSheetHidden()){feuille.showSheet()}
})
}
function ajoutEtudiant() {
const nom = Browser.inputBox("Ajout d'un étudiant", 'Entrez le nom :', Browser.Buttons.OK_CANCEL);
if (nom=='cancel'){return}
var doc=SpreadsheetApp.getActiveSpreadsheet()
var feuilles=doc.getSheets()
msg = ''
feuilles.forEach(function(feuille){
var der = feuille.getLastDataRow()
var liste = feuille.getRange('A5:A'+der).getValues().join().split(',')
if (liste.indexOf(nom)==-1){
feuille.getRange('A'+(der+1)).setValue(nom)
trier(feuille,1,5)
}
else {msg+=feuille.getName()+', '}
})
if (msg==''){msg = 'Ajout terminé avec succès !'}
else {msg = '"' + nom + '" déjà présent dans : ' + msg}
Browser.msgBox(msg)
}
function suppEtudiant() {
const nom = Browser.inputBox("Ajout d'un étudiant", 'Entrez le nom :', Browser.Buttons.OK_CANCEL);
if (nom=='cancel'){return}
var doc=SpreadsheetApp.getActiveSpreadsheet()
var feuilles=doc.getSheets()
msg = ''
feuilles.forEach(function(feuille){
var der = feuille.getLastDataRow()
var liste = feuille.getRange('A5:A'+der).getValues().join().split(',')
if (liste.indexOf(nom)!=-1){
var ligne = liste.indexOf(nom) + 5
feuille.getRange('A'+ligne+':K'+ligne).clearContent()
trier(feuille,1,5)
}
else {msg+=feuille.getName()+', '}
})
if (msg==''){msg = 'Sppression terminée avec succès !'}
else {msg = '"' + nom + '" absent dans : ' + msg}
Browser.msgBox(msg)
}
Object.prototype.getLastDataRow = function(col){
var lastRow = this.getLastRow();
if (col == null){col='A'}
var range = this.getRange(col + lastRow);
if (range.getValue() !== "") {
return lastRow;
} else {
return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
}
}
function trier(feuille,colonne,depuisLigne){
var range = feuille.getRange(depuisLigne, 1, feuille.getLastRow() - (depuisLigne-1), feuille.getLastColumn());
range.sort({column: colonne, ascending: true});
}