Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • Guest, before posting your code please take these rules into consideration:
    • It is required to use our BBCode feature to display your code. While within the editor click < / > or >_ and place your code within the BB Code prompt. This helps others with finding a solution by making it easier to read and easier to copy.
    • You can also use markdown to share your code. When using markdown your code will be automatically converted to BBCode. For help with markdown check out the markdown guide.
    • Don't share a wall of code. All we want is the problem area, the code related to your issue.


    To learn more about how to use our BBCode feature, please click here.

    Thank you, Code Forum.

JavaScript App Script - Google Sheets

RicardoSousa

New Coder
Olá,
(Estou usando um tradutor e sou muito limitado em programação)

Tenho um script no Planilhas Google que estou usando para mover informações que estão em uma linha de uma página para outra, dependendo do "status" daquela coluna; 8(H).
Ao mudar a página (recortar e colar) você está movendo duas linhas: a linha que eu quero mover e a imediatamente depois.
Você pode me ajudar a corrigir esse erro?
Os comentários estão em português

[CÓDIGO]função onEditHandler(e) {
//Variável que armazena a planilha editada
var activeSheet = e.source.getActiveSheet();

//Variáveis para representar cada uma das abas
var sheetAgendadas = e.source.getSheetByName('AGENDADAS');
var sheetADecorrer = e.source.getSheetByName('A DECORRER');
var sheetComplete = e.source.getSheetByName('COMPLETE');
var planilhaConcluidas = e.source.getSheetByName('CONCLUIDAS');

//Variáveis para identificar a linha e a coluna com o status alterado.
var linha = e.range.getRow();
var coluna = 8;

//Verifica se a planilha 'A DECORRER' foi editada
se (activeSheet.getName() == sheetADecorrer.getName()) {
var celulaStatus = sheetADecorrer.getRange(linha, coluna); //Seleciona célula status da linha editada.
var status = celulaStatus.getValue(); //Pega o valor da célula status da linha editada.

//Verifica se o status da linha editada é igual a TERMINADA
se (status == 'TERMINADA') {

//Descobre a última linha preenchida da coluna A nsheet Terminadas
var ultimaLinha = 1;

enquanto (sheetTerminadas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetADecorrer.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha TERMINADAS
area.copyTo(sheetTerminadas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Você limpa as informações da planilha A Decorrer
//sheetADecorrer.getRange('A' + linha + ':M' + linha).clearContent();
//Exclui a linha da planilha A Decorrer
sheetADecorrer.deleteRow(linha);
}

//Verifica se o status da linha editada é igual a AGENDADA
if (status == 'AGENDADA') {

//Descobre a última linha preenchida da coluna A sheet CONCLUIDAS
var ultimaLinha = 1;

while (sheetAgendadas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetADecorrer.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha AGENDADAS
area.copyTo(sheetAgendadas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Você limpa as informações da planilha A Decorrer
//sheetADecorrer.getRange('A' + linha + ':M' + linha).clearContent();
//Exclui a linha da planilha A Decorrer
sheetADecorrer.deleteRow(linha);
}

//Verifica se o status da linha editada é igual a CONCLUÍDA
if (status == 'CONCLUÍDA') {

//Descobre a última linha preenchida da coluna A sheet CONCLUIDAS
var ultimaLinha = 1;

while (sheetConcluidas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetTerminadas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha CONCLUIDAS
area.copyTo(sheetConcluidas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Você limpa as informações da planilha A Decorrer
//sheetADecorrer.getRange('A' + linha + ':M' + linha).clearContent();
//Exclui a linha da planilha A Decorrer
sheetADecorrer.deleteRow(linha);
}
}

//Verifica se a planilha 'TERMINADAS' foi editada
senão se (activeSheet.getName() == sheetTerminadas.getName()) {
var celulaStatus = sheetTerminadas.getRange(linha, coluna); //Seleciona célula status da linha editada.
var status = celulaStatus.getValue(); //Pega o valor da célula status da linha editada.

//Verifica se o status da linha editada é igual a A DECORRER
se (status == 'UM DECORADOR') {

//Descobre a última linha preenchida da coluna A sheet A Decorrer
var ultimaLinha = 1;

enquanto (sheetADecorrer.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetTerminadas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha A DECORRER
area.copyTo(sheetADecorrer.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Limpas as informações da planilha TERMINADAS
//sheetTerminadas.getRange('A' + linha + ':M' + linha).clearContent();
//Apaga a linha da planilha TERMINADAS
sheetTerminadas.deleteRow(linha);
}

//Verifica se o status da linha editada é igual a AGENDADA
if (status == 'AGENDADA') {

//Descobre a última linha preenchida da coluna A sheet CONCLUIDAS
var ultimaLinha = 1;

while (sheetAgendadas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetTerminadas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha AGENDADAS
area.copyTo(sheetAgendadas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Você limpa as informações da planilha A Decorrer
//sheetADecorrer.getRange('A' + linha + ':M' + linha).clearContent();
//Exclui a linha da planilha A Decorrer
sheetTerminadas.deleteRow(linha);
}

//Verifica se o status da linha editada é igual a CONCLUÍDA
if (status == 'CONCLUÍDA') {

//Descobre a última linha preenchida da coluna A sheet CONCLUIDAS
var ultimaLinha = 1;

while (sheetConcluidas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetTerminadas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha CONCLUIDAS
area.copyTo(sheetConcluidas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Limpas as informações da planilha TERMINADAS
//sheetTerminadas.getRange('A' + linha + ':M' + linha).clearContent();
//Apaga a linha da planilha TERMINADAS
sheetTerminadas.deleteRow(linha);
}
}

//Verifica se a planilha 'AGENDADAS' foi editada
senão se (activeSheet.getName() == sheetAgendadas.getName()) {
var celulaStatus = sheetAgendadas.getRange(linha, coluna); //Seleciona célula status da linha editada.
var status = celulaStatus.getValue(); //Pega o valor da célula status da linha editada.

//Verifica se o status da linha editada é igual a A DECORRER
se (status == 'UM DECORADOR') {

//Descobre a última linha preenchida da coluna A sheet A Decorrer
var ultimaLinha = 1;

enquanto (sheetADecorrer.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetAgendadas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha A DECORRER
area.copyTo(sheetADecorrer.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Limpas as informações da planilha AGENDADAS
//sheetAGENDADAS.getRange('A' + linha + ':M' + linha).clearContent();
//Apaga a linha da planilha AGENDADAS
sheetAgendadas.deleteRow(linha);
}

//Verifica se o status da linha editada é igual a AGENDADA
se (status == 'TERMINADA') {

//Descobre a última linha preenchida da coluna A sheet CONCLUIDAS
var ultimaLinha = 1;

while (sheetAgendadas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetAgendadas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha AGENDADAS
area.copyTo(sheetTerminadas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Você limpa as informações da planilha A Decorrer
//sheetADecorrer.getRange('A' + linha + ':M' + linha).clearContent();
//Exclui a linha da planilha A Decorrer
sheetADecorrer.deleteRow(linha);
}

//Verifica se o status da linha editada é igual a CONCLUÍDA
if (status == 'CONCLUÍDA') {

//Descobre a última linha preenchida da coluna A sheet CONCLUIDAS
var ultimaLinha = 1;

while (sheetConcluidas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetAgendadas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha CONCLUIDAS
area.copyTo(sheetConcluidas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Limpas as informações da planilha TERMINADAS
//sheetTerminadas.getRange('A' + linha + ':M' + linha).clearContent();
//Apaga a linha da planilha TERMINADAS
sheetAgendadas.deleteRow(linha);
}
}

//Verifica se a planilha 'CONCLUIDAS' foi editada
outro {
var celulaStatus = sheetConcluidas.getRange(linha, coluna); //Seleciona célula status da linha editada.
var status = celulaStatus.getValue(); //Pega o valor da célula status da linha editada.

//Verifica se o status da linha editada é igual a A DECORRER
se (status == 'UM DECORADOR') {

//Descobre a última linha preenchida da coluna A sheet A Decorrer
var ultimaLinha = 1;

enquanto (sheetADecorrer.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetConcluidas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha A DECORRER
area.copyTo(sheetADecorrer.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Limpas as informações da planilha CONCLUÍDAS
//sheetConcluidas.getRange('A' + linha + ':M' + linha).clearContent();
//Apaga a linha da planilha CONCLUIDAS
sheetConcluidas.deleteRow(linha);
}

//Verifica se o status da linha editada é igual a AGENDADA
if (status == 'AGENDADA') {

//Descobre a última linha preenchida da coluna A sheet CONCLUIDAS
var ultimaLinha = 1;

while (sheetAgendadas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetConcluidas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha AGENDADAS
area.copyTo(sheetAgendadas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Você limpa as informações da planilha A Decorrer
//sheetADecorrer.getRange('A' + linha + ':M' + linha).clearContent();
//Exclui a linha da planilha A Decorrer
sheetConcluidas.deleteRow(linha);
}

//Verifica se o status da linha editada é igual a TERMINADA
se (status == 'TERMINADA') {

//Descobre a última linha preenchida da coluna A sheet TERMINADAS
var ultimaLinha = 1;

enquanto (sheetTerminadas.getRange(ultimaLinha, 1).isBlank() != true) {
ultimaLinha += 1;
}

//Copia e cola as informações na outra planilha
var area = sheetConcluidas.getRange('A' + linha + ':O' + linha);

//Onde vai ser colado as informações
var colar = 'A' + ultimaLinha;

//Cola as informações na planilha A DECORRER
area.copyTo(sheetTerminadas.getRange(colar), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

//Limpas as informações da planilha CONCLUÍDAS
//sheetConcluidas.getRange('A' + linha + ':M' + linha).clearContent();
//Apaga a linha da planilha CONCLUIDAS
sheetConcluidas.deleteRow(linha);
}
}
}
[/CÓDIGO]


Obrigado
Ricardo
 

New Threads

Buy us a coffee!

Back
Top Bottom