Apps Script : Masquer lignes si date en colonne C < date jour

Bonjour,j’ai récupéré une petite macro afin de masquer/démasquer des lignes via une case à cocher. J’ai testé ça marche très bien sauf que pour l’instant je masque toutes les lignes (1000). Je voudrais masquer uniquement les lignes si la date en colonne B de ma feuille est inférieure à la date du jour et afficher toutes les lignes lorsque je démasque. Ci dessous la macro.Pourriez vous m’aider svp. Merci. Thierry///////////////////////////////////////////////////////////////////////////////////////////////// // Fonction masquer les lignes définies en cochant/décochant une case à cocher.// ///////////////////////////////////////////////////////////////////////////////////////////////// function onEdit(e) { // Masquer/démasquer lignes en fonction de la case à cocher K1. //////// if (e.range.getA1Notation() != « K1 ») return; if (e.value == « TRUE ») { //masquer les lignes à partir de la ligne numéro 2 et les 1000 lignes suivantes. SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().hideRows(2, 1000); } else if (e.value == « FALSE ») { //démasquer les lignes à partir de la ligne numéro 2 et les 1000 lignes suivantes. SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().showRows(2, 1000); } }

Bonjour,

Le script va être beaucoup plus lent : actuellement tu traites les 999 lignes en une fois hide/showRows(2,1000) ; pour tenir compte de la date en colonne B il va falloir faire une boucle et traiter les lignes une à une :

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().hideRows(2, 1000);

REMPLACÉ PAR :

const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‹ ICI NOM DE LA FEUILLE ›);
let table = ss.getRange(2,2,1000,1).getValues();
for (let i = 2; i < 1000; i++) {
if (table[i-2][0] <new Date()){
ss.hideRows(i,1);
}
}
}