Bonjour,
J'ai trouvé, sur internet (forum Google+), un script écrit en JavaScript pour compter, dans une feuille de calcul, le nombre de cellules d'une couleur donnée dans une plage donnée. Je déteste faire du copier-coller sans comprendre (mon langage habituel étant Delphi). Voici cette fonction :
J'ai 2 ou 3 questions sur cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function CompteCouleurs(plage,couleur) { var activeRange = SpreadsheetApp.getActiveRange(); var activeSheet = activeRange.getSheet(); var formule = activeRange.getFormula(); var laplage = formule.match(/\((.*)\;/).pop(); var range = activeSheet.getRange(laplage); var bg = range.getBackgrounds(); var values = range.getValues(); var lacouleur = formule.match(/\;(.*)\)/).pop(); var colorCell = activeSheet.getRange(lacouleur); var color = colorCell.getBackground(); var count = 0; for(var i=0;i<bg.length;i++) for(var j=0;j<bg[0].length;j++) if( bg[i][j] == color ) count=count+1; return count; };
1) Pourquoi les variables "plage" et "couleur", transmis en paramètre, ne sont-ils jamais utilisé dans le code de la fonction ?
2) Que signifie précisément le passage formule.match(/\((.*)\;/).pop() ? Je sais que la méthode "match" s'applique sur une chaîne de caractères pour chercher une occurrence dans une expression régulière, mais là, je n'y comprends rien !
3) La variables tableau "values" est sans doute inutile ici, n'est-ce pas ?
Merci de m'éclairer.
Partager