Bonjour,
Effectivement la solution de Pierre marche lorsqu'on n'itère pas la recherche dans une boucle. Dans mon cas le script est contenu dans boucle (désolé j'aurais du le préciser). Alors lorsque je débogue cela fonction jusqu'à l'itération où la valeur recherchée n'est pas trouvée. a cet itération, le script arrête de fonctionner. Voilà pourquoi j'ai décidé d'ajouter un bloc If pour que la recherche de la ligne ne se fasse uniquement au cas il y aurait une valeur trouvée.
var plage =sheet2.getRange(ligne_deb,col_plage,ligne_fin,col_plage)
for ( i = 2; i <= derli1; i++) {
if (!sheet1.isRowHiddenByFilter(i)){
var p = sheet1.getRange(i,numero).getValue();
var r = sheet1.getRange(i,couleur).getValue();
var matricule_recherche = p +" "+ r;
console.log(matricule_recherche)
var trouve = matricule_recherche;
var recherche = plage.createTextFinder(trouve).matchEntireCell(true).findNext();
if(recherche!=null){
var ligne_matricule = recherche.getRow();
}
console.log(ligne_matricule)
}
}
}
En remplaçant "=" par "!=" comme proposée par Saboh, le script ne s'arrête plus. Mais lorsque la valeur recherchée n'est pas trouvée, au lieu passer à la recherche suivante, il renvoie la dernière valeur de ligne_matricule mémorisée, ce qui n'est pas correct.