Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

111
Vistas
cascading row deletion javascript

I start in the programming and in the google sheet folder I would like to delete the lines after 60 days according to the date column L (12). the program works but as soon as a line is deleted, all the other lines are deleted. find below my code on google app script.

//trouver le nom du classeur
  var date1 ; 
  var date2 = new Date();
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var couleur ;
  var feuilles = classeur.getSheets();
  // for (var i=0 ; i<sheets.length ; i++) out.push( [ sheets[i].getName() ] )

//trouver le nombre de feuilles dans le classeur ???


 
//pour chaque feuille, il faut
//pour chaque ligne, étudier la cellule L
//si vide ou < 31 alors rien
//si >= effacer la ligne 
  
function coloriage() {
  for (var i=0 ;i<feuilles.length ; i ++) {
    var feuille = feuilles[i] ;
    var transports = feuille.getDataRange();
    var donnees = transports.getValues();    
    for (var ligne = 6 ; ligne < donnees.length ; ligne++) {        
      date1 = donnees[ligne][11]; 
      if (date1 != "") {
        // différence de jours
        var jours = Math.round((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));
        //Logger.log("ligne= "+ligne+ " date1= "+date1+" jours= "+jours);
        if (jours < 40) {
          if (jours<20) { couleur = "#fff" ; }
          if ((jours>=20)&&(jours<30)) { couleur = "#fd0" ; }
          if ((jours>=30)&&(jours<40)) { couleur = "#f75" ; }
          feuille.getRange(ligne+1,1,1,12).setBackground(couleur);
          }
        else { 
        feuille.deleteRows(ligne+1,1)
        Logger.log("ligne "+(ligne+1)+" supprimée ; nb de jours "+jours);
        ligne --
        }
      }
    }
  }
}

Thank you in advance for your help.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

You have a loop with line, and inside the loop you affect the value of line ligne -- ... weird. If you want to remove rows, reverse your loop as follows

for (var ligne = donnees.length-1 ; ligne >= 6 ; ligne--)
about 4 years ago · Juan Pablo Isaza Denunciar

0

You can also simply remove the ligne -- instruction as whenever the code ends up on the else branch, it creates an infinite loop and all the rows end up being deleted.

Therefore, your else will look simply like this:

else { 
   feuille.deleteRows(ligne+1,1);
   Logger.log("ligne "+(ligne+1)+" supprimée ; nb de jours "+jours);
}
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda