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):
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 ?
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]); } }
Je vous remercie d'avance !
A bientot
Partager