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 :

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;
};
J'ai 2 ou 3 questions sur cette fonction :
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.