Set value to another spreadsheet

Asked

Viewed 28 times

-1

Good morning,

I created a script that takes the " Cancel " value from a column and where you have " Cancel " the script erases this line, but I need it to copy this line and send it to another spreadsheet through the ID, I am not able to do this step only to delete.

function viagemCancel() {  var planilhaViagem = SpreadsheetApp.openById("1RuWqIYiMw55JL9YnvvWn0VWRD7iHMPTXMobiiRZIwGI"); var abaViagem = planilhaViagem.getSheetByName("Página1"); var ultimaLinhaViagem = abaViagem.getLastRow(); var ultimaColunaViagem = abaViagem.getLastColumn();var cancel = ultimaLinhaViagem; var tipo = abaViagem.getRange(cancel, 5).getValue(); for (var x = 1; x <= ultimaLinhaViagem; x++){     if(abaViagem.getRange(x, 5).getValue() == "Cancelar") planilhaViagem.deleteRow(x); }}

inserir a descrição da imagem aqui inserir a descrição da imagem aqui

1 answer

0

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]);
  }

}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.