Bonjour,
1-
tu mets ceci dans la boucle
var lastligne = recherche.getLastRow();
donc c'est répété à chaque fois, il faut le mettre avant la première boucle car la valeur trouvée ne change ni en fonction de i
, ni en fonction de l
2-
tu mets ceci dans la boucle de l
var zone = classeur.getRange(i, 1).getValue();
il faut mettre cela en dehors de cette boucle de l
, mais tout en la mettant dans la boucle i
car la valeur dépend de i
nota, évite la lettre l
qui se confond avec le chiffre 1
3-
le plus chronophage est le fait de faire des allers/retours entre la feuille et le script, par exemple
classeur.getRange(i, l).getValue()
il faut capter les données en une seule fois avant les boucles
var data = classeur.getRange('ta_plage').getValues() // avec un S au bout
et ensuite aller chercher les données dans data ... data est un tableau à 2 dimensions qui s'écrit comme ceci
data[ligne][colonne]
où ligne n'est pas égal à i car ligne ici commence à 0, idem pour colonne