Oui en effet, il y a 2 grandes possibilités :
- ramener les données par un query ou autre fonction avec sort sur une autre feuille (ne nécessite pas de script), merci Gilbert
=query('Réponses au formulaire 1'!A:Z;"select * order by A DESC";1)
- effectuer un tri lors de la réception, comme j'ai testé ceci, je donne quand même la réponse :
function onFormSubmit(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var row = sheet.getActiveRange().getRow();
var column = e.values.length + 1;
var range = sheet.getRange(2, 1, row-1, column);
range.sort({column: 1, ascending: false});
}
il est nécessaire de définir un déclencheur, si tu n'es pas habitué, exécute cette fonction
function myTriggerSetup() {
if(!isTrigger('onFormSubmit')) {
ScriptApp.newTrigger('onFormSubmit')
.forSpreadsheet(SpreadsheetApp.getActive())
.onFormSubmit()
.create();
}
}
function isTrigger(funcName) {
var r=false;
if(funcName) {
var allTriggers=ScriptApp.getProjectTriggers();
var allHandlers=[];
for(var i=0;i<allTriggers.length;i++) {
allHandlers.push(allTriggers[i].getHandlerFunction());
}
if(allHandlers.indexOf(funcName)>-1) {
r=true;
}
}
return r;
}
conclusion : la première solution suggérée par Gilbert est sans doute la plus simple !