Bonjour à tous!

Je sollicite votre aide pour un problème de programmation. Je suis débutant et j'apprends à utiliser Javascript pour essentiellement l'utiliser sur Google Script afin de manipuler Google Sheet.

J'ai écrit quelques lignes pour réaliser une action simple : mettre une valeur dans une colonne B du tableur en fonction de la valeur d'une colonne A de ce même tableur. Donc tout simplement j'ai utilisé if. Le soucis est que j'ai à peu près 20000 lignes et même en utilisant un tableau pou ranger les valeurs, ça prends un temps interminable (ou ça me mets un truc comme Running Out)..

Voici mon code (google script):

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
25
26
27
28
29
30
31
32
33
34
35
36
37
 
// Permet d'obtenir le nombre de ligne de ma feuille
 
function DerniereLigne() {
 
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Liste');
  var lignes = sheet.getLastRow();
  return lignes
}
 
// Permet d'affecter une valeur colonne B en fonction colonne A
function Tri() {
 
  var tab1 = []
  var tab2 = []
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.setActiveSheet(ss.getSheetByName('Liste'));
 
  for (var i =0,c=DerniereLigne()-1 ; i < c;i++){
    tab1.push(sheet.getRange("A"+ (i+2)).getValues());
    }
 
  for (var k =0;k<c;k++){
    if (tab1[k]=="Pomme") {
      tab2[k]="Fruit"
   } else if (tab1[k]=="Carotte") {
      tab2[k]="Légume"
    } else {
      tab2[k]="Rien"
    }
  }
 
  for (var j =0 ; j < c;j++){
     sheet.getRange("B"+ (j+2)).setValue(tab2[j]);
     }
}
Mon code marche très bien pour moins de 100 lignes. Si je commence a mettre 2000 ligne ça prends une bonne minutes mais pour 20000 ça a jamais réussi.. Avez vous une idée pour optimiser ce code ?

Je vous remercie d'avance !
A bientot