Bonjour,
Merci pour la fonction SpreadsheetApp.flush().
J'ai rajouté la fonction SpreadsheetApp.flush() et Utilities.sleep() dans tous mes scripts, mais j'ai toujours même problème. C'est sans doute le fait que mes fonctions sont appelées plusieurs fois au niveau de la même feuille de calcul et utilisant eux mêmes des données chargées.Je tente de trouver un compromis avec Utilities.sleep(), mais pas facile.
J'ai aussi cette fonction ci-dessous qui ne met pas à jour les données après un nouveau changement, la donnée précédemment chargée reste figée dans les cellules, je ne sais pas pourquoi. Pouvez -vous m'aider sur ce problème de rafraîchissement, j'aimerais le faire en automatique.
function myFunction() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Hist.Taux");
var data = sheet.getRange('A4:DH' + sheet.getLastRow()).getValues()
// map va constituer une sorte de répertoire de dates uniques avec des valeurs
// 3 méthodes : .set , .has , .get
var dates = new Map()
for (col = 0; col < data[0].length; col += 4) {
for (ligne = 0; ligne < data.length; ligne++) {
if (data[ligne][col] != '') {
ladate = Utilities.formatDate(new Date(data[ligne][col]), "GMT+1", "yyyy-MM-dd")
if (dates.has(ladate)) {
console.log(ladate)
dates.set(ladate, dates.get(ladate) + data[ligne][col + 3])
}
else {
console.log('new ' + ladate)
dates.set(ladate, data[ligne][col + 3])
}
}
}
}
var sommes = []
// on mets ici le répertoire en tableau que l'on va trier
dates.forEach(function (value, key) { sommes.push([key, value]) })
sommes = (sommes.sort())
// on transfère
const comp = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("compare");
comp.getRange('G2:H' + (sommes.length + 1)).setValues(sommes)
}
Je vous remercie d'avance,