Je ne pense pas qu’il existe de script tout fait mais tu peux toujours passer par un algorithme fait maison.
Structurer le script
Je ne garantie pas que la logique sera la plus performante, mais elle est je trouve intuitive :
Premièrement on va séparer le problème en trois parties comme tu l’as fait :
- trouver la première cellule non vide
- trouver la dernière cellule non vide
- associer un style au range qui en résulte
function firstNotEmpty(spreadsheet, row){
}
function lastNotEmpty(spreadsheet, row) {
}
function applyStyle(spreadsheet, start, end) {
const range = spreadsheet.getRange(start, end);
range.setBorder(true, true, true, true, false, false);
}
const app = SpreadsheetApp.getActive();
const spreadsheet = app.getActiveSpreadsheet();
const row = app.getActiveRange().getRow();
applyStyle(spreadsheet, firstNotEmpty(spreadsheet, row), lastNotEmpty(spreadsheet, row))
Maintenant qu’on a la structure de note algorithme, résolvons chaque problème un par un.
Un petit problème à la fois
Trouver la première cellule non vide
Pour trouver la première cellule non vide, c’est assez facile finalement : on parcours la ligne complète et on regarde la première colonne non vide.
Pour parcourir une ligne il faut d’abord sélectionner la ligne complète puis le parcours se fait comme dans le tutoriel.
Le point le plus difficile c’est donc d’obtenir la ligne complète.
méthode 1 : créer le range
COmme tu l’as fais dans un autre message, tu peux obtenir le range avec simplement spreadsheet.getRange(row, 1, row, spreadSheet.getLastColumn())
.
méthode 2 : utiliser la méthode qui permet de lister le range qui a une données
l’objet Spreadsheet possède la fonction getDataRange()
qui te retourne un tableau avec toutes les lignes. Ensuite, il te suffit d’utiliser dataRange[row]
pour avoir toutes les données de la lignes.
Avec ça tu pourras savoir à quelle colonne il y a une données.
Autre avantage pour la suite, il te suffit de parcourir ce tableau à l’envers pour connaître la dernière cellule non vide.
Trouver la dernière cellule non vide
Globalement il y a deux manières de faire :
- on parcourt le tableau de gauche à droite, on retient la dernière fois qu’on a vu une cellule non vide. Une fois la parcours terminé on a gagné.
- On parcourt le tableau de droite à gauche et on s’arrête à la première cellule non vide
Voilà