Good afternoon,
The code you must be looking for must be something like this.
Remembering that I only made a few validations.
For example if the spreadsheet you are saving the data reaches the maximum number of rows you should add more rows.
I didn’t realize this kind of control, you can control it and other things.
But for test issue it worked with up to 4 sequential lines performing the process of copying the data to the other spreadsheet and later deleting the lines of the current spreadsheet.
function viagemCancel() {
// Dados da planilha de armazenamento
var planilhaArmazenamento = SpreadsheetApp.openById("1Cc5EP05WUZDtn1Sr69mkTMPGHCSSZIwtPGcpouAaB8o");
var abaBanco = planilhaArmazenamento.getSheetByName("Página1");
var ultimaLinhaPreenchida = abaBanco.getLastRow() + 1;
var planilhaViagem = SpreadsheetApp.openById("1qcKyeaHjRNNbvakUjf5vrw4UDF37lqazp0qYTwWLJnE");
var abaViagem = planilhaViagem.getSheetByName("Página1");
var ultimaLinhaViagem = abaViagem.getLastRow();
var ultimaColunaViagem = abaViagem.getLastColumn();
var cancel = ultimaLinhaViagem;
var tipo = abaViagem.getRange(cancel, 5).getValue();
var valoresParaExcluir = [];
for (var x = 1; x <= ultimaLinhaViagem; x++){
if(abaViagem.getRange(x, 5).getValue() == "Cancelar") {
for (var y = 1; y <= ultimaColunaViagem; y++) {
var dadosCelula = abaViagem.getRange(x, y).getValue();
abaBanco.getRange(ultimaLinhaPreenchida, y).setValue(dadosCelula);
}
ultimaLinhaPreenchida++;
// Pegando indices que vão ser excluídos
valoresParaExcluir.push(x);
}
}
// Ordenando do maior para o menor para não interferir no momento da exclusão
// Se você excluir por exemplo a linha 10 e depois tentar excluir a linha 11 a linha 12 será excluída
valoresParaExcluir.sort(function(a, b){
return b - a;
});
for (var x = 0; x < valoresParaExcluir.length; x++){
planilhaViagem.deleteRow(valoresParaExcluir[x]);
}
}