bonjour a tous
j'utilise pour mon script un déclencheur google, mais il arrive fréquemment que mon script ne s'execute pas
je trouve que Oneedit(e) , fonctionne beaucoup mieux mais je ne n'arrive pas a l’intégré a mon script
quelqu'un pourrait il maider ?

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
function OneEdit() {
  var app = SpreadsheetApp;
  var valeur = app.getActiveSpreadsheet();
  var feuille = valeur.getActiveSheet();        //SheetByName("surveillance 1");
 
  //var case1 = feuille.getRange(2 , 1).getValue();
 
 
  var lancescript = feuille.getActiveCell().getValue();//on recupère la valeur de la cellule active
 
 
 // for ( var t=4; case1 !="" ;t++){
 
 // var case1 = feuille.getRange(t , 1).getValue();
 // var case2 = feuille.getRange(t+1 , 2).getValue();
 
  if ( lancescript =="fini" ){//si dans la colonne 2, on inscrit : fini, on excecute le script qui suit
 
  var id = feuille.getRange("D2").getValue(); //on recupere l'ID contenu dans la case D2
  var sheetactive =  SpreadsheetApp.openById(id);
  var adresse = feuille.getRange("B2").getValue();
  var sheet = sheetactive.getSheetByName(adresse); //on active et ouvre virtuellement le classeur avec l'ID contenu dans la case D2, et la feuille avec le nom contenu dans B2
 
  sheet.getRange('B:B').activate();
  sheetactive.getActiveSheet().insertColumnsBefore(sheetactive.getActiveRange().getColumn(), 1);
  sheetactive.getActiveRange().offset(0, 0, sheetactive.getActiveRange().getNumRows(), 1).activate();
 
  var releve = feuille.getRange(1,1);
 
  for (var i=3;releve !="";i++){
  var releve = feuille.getRange(i , 1).getValue();
  var releve2 = feuille.getRange(i , 2).getValue();
 
  if (releve2 != "fini"){ // si la valeur dans la colonne B est differente de fini on copie les valeur, sinon on arrete la copie
  sheet.getRange(i-2 , 2).setValue(releve2); }
 
 
  }
 
  feuille.getRange('B6:B').clearContent();// on efface dans la feuille active les valeur qui ont été entrée manuellement
 
   //ci dessous, ou ouvre le classeur surveillance et la feuille surveillance, et on va rechercher dans la bonne colonne l'adresse en cours, et on ecrit dans la colonne état : ok
  var sheetactive2 =  SpreadsheetApp.openById("id de mon classeur sheet");
  var sheet2 = sheetactive2.getSheetByName("base");
 
  var energo = feuille.getRange('A1').getValue();
  var MES = feuille.getRange('C1').getValue();
  var MESfaite = feuille.getRange('B5').getValue();
  var today = feuille.getRange('B3').getValue();
  var compare = "x";
  for (var j=2; compare != adresse ; j++){
  var passage = feuille.getRange(1 , 2).getValue(); // passage = semaine, quinzaine ou mois
  if ( passage == "semaine"){
  var k = 13; }
  if ( passage == "quinzaine"){
  var k = 14; }
  if ( passage == "mois"){
  var k = 15; }
  var compare = sheet2.getRange(j , 1).getValue();
  if ( compare == adresse ){
  sheet2.getRange(j,k).setValue("ok"); 
  var eco21 = sheet2.getRange(j, 3).getValue();
  if (energo == "Energo" && eco21 =="x"){
  sheet2.getRange(j,16).setValue("ok");  }
 
  if (MES == "M.E.S" && (MESfaite == "MES" || MESfaite == "arrêt chauffage")){
  sheet2.getRange(j,17).setValue(today);  }
                           }
                                         }
 
 }
// }
  // ci dessous, ci la tournée de surveillance est fini, on vide la colonne dans le classeur surveillance, feuille base
  var sheetactive2 =  SpreadsheetApp.openById("  ");
  var sheet2 = sheetactive2.getSheetByName("base"); 
  var passage = feuille.getRange(1 , 2).getValue(); 
  var reste = feuille.getRange(4 , 4).getValue();
  var energo = feuille.getRange('A1').getValue();
  var MES = feuille.getRange('C1').getValue();
 
 
  if ( reste == "0" && passage == "semaine" ){
   Utilities.sleep(20000);//on fais une pause dans le script de 20 seconde le temps que s'actualise les données
   sheet2.getRange('M2:M').clearContent();
   feuille.getRange("E1").setValue("fini");   }
 
  if ( reste == "0" && passage == "quinzaine" ){
  Utilities.sleep(20000);//on fais une pause dans le script de 20 seconde le temps que s'actualise les données
   sheet2.getRange('N2:N').clearContent();
   feuille.getRange("E1").setValue("fini");}
 
  if ( reste == "0" && passage == "mois" ){
  Utilities.sleep(20000);//on fais une pause dans le script de 20 seconde le temps que s'actualise les données
   sheet2.getRange('O2:O').clearContent(); 
   feuille.getRange("E1").setValue("fini"); }
 
  if ( reste == "0" && energo == "Energo" ){
  Utilities.sleep(20000);//on fais une pause dans le script de 20 seconde le temps que s'actualise les données
  sheet2.getRange('P2:P').clearContent();  } 
 
  if ( reste == "0" && MES == "M.E.S" ){
  Utilities.sleep(20000);//on fais une pause dans le script de 20 seconde le temps que s'actualise les données
   sheet2.getRange('Q2:Q').clearContent();  }
 
 
 }