Merci beaucoup, ta solution est la meilleure.
function monGrandLivre() {
var journal = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('journal')
var data = journal.getDataRange().getDisplayValues().filter(r => (!isNaN(Date.parse(r[0]))))
data = data.sort(function (a, b) {
return "" + a[1].localeCompare(b[1]);
});
var result = []
result.push(['','','','Débit','Crédit'])
data.forEach(function(donnees,ligne){
result.push([donnees[0],donnees[1],'',donnees[3],donnees[4]])
if (ligne != (data.length -1)){
if (data[ligne+1][1] != data[ligne][1]){
result.push(['','','','',''])
result.push(['','','','',''])
}
}
})
var grandLivre = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('grand livre')
grandLivre.clearContents()
grandLivre.getRange(1,1,result.length,result[0].length).setValues(result)
grandLivre.getRange(result.length+1,3).setValue('à reporter')
grandLivre.getRange(result.length+1,4).setFormula('=sum(D2:D'+result.length+')')
grandLivre.getRange(result.length+1,5).setFormula('=sum(E2:E'+result.length+')')
}