Seu trabalho é incrível!! Nunca desista, você faz tão bem e com tanta vontade de ensiar que da gosto de ver! Estou aprendendo muito com você e sempre que tenho alguma dúvida minha primeira busca é aqui no seu canal.
Ótima aula, porem teria alguma maneira de "limitar" o código baseado em outra coluna? Por exemplo, eu gostaria que o código fosse até a última célula preenchida na coluna A.
Muito bom o vídeo, mas teria algum jeito de usar o script ensinado no vídeo "Macro de Script para COPIAR DADOS de uma Guia para Outra no Google Sheets" junto com esse para ele identificar a ultima linha com dados de uma determinada coluna, como a coluna C ao invés de verificar as informações da coluna A. Agradeço desde ja!
Boa tarde, teste no lugar da variável linha colocar o código a seguir. var linha = 1; while(guiadados.getRange(linha, 3).isBlank()==false){ linha = linha + 1 }
Parabéns pela didática! Estou tentando criar uma macro que teria que fazer determinada função: Copiar todos os dados da linha onde a célula estiver selecionada, exemplo: Célula selecionada "S1421" da "aba GERAL" , logo toda linha 1421 da "aba GERAL" seria copiada para a aba "PROCESSOS ARQUIVADOS" e colada na primeira linha vazia da coluna A. Em seguida volta para a aba "GERAL" e exclui a linha que acabou de ser copiada, neste caso "1421".
E por fim a mensagem "Processo arquivado com sucesso!".
Este seria o comando e que toda vez que ele for acionado através do botão "ARQUIVAR", fazer todo o processo onde a célula estiver selecionada célula "S50", "S935", etc.
Estou com dificuldades, pois não consigo referenciar através da célula secionada para que o comando funcione. Fiz um teste definindo a linha (mas preciso que seja onde a célula estiver selecionada). Vou postar aqui:
function CopiareColar2() { var spreadsheet = SpreadsheetApp.getActive(); var sheet = spreadsheet.getActiveSheet(); sheet.getRange(spreadsheet.getCurrentCell().getRow(), 1, 1, sheet.getMaxColumns()).activate(); spreadsheet.setActiveSheet(spreadsheet.getSheetByName('PROCESSOS ARQUIVADOS'), true); spreadsheet.getRange('GERAL!10:10').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); spreadsheet.setActiveSheet(spreadsheet.getSheetByName('GERAL'), true); spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows()); };
O problema é que ele só copia a linha 'GERAL!10:10' quando cola na aba PROCESSOS ARQUIVADOS, cola na célula A1 e não na célula vazia da coluna A.
@@CanalSGP Acho que este script pode ajudar. Mas ainda não consegui rodar entre as duas abas. gist.github.com/develmaycare/4e72e72ae0be85a8efe7a525267afbc3
Muito bom! Funcionou aqui. Mas como faço para que ele preencha automaticamente todos os campos vazios? Sem que eu tenha que clicar em executar a todo momento?
Muito bom o script entretanto se temos muitas linhas ele torna-se lento, as estruturas em loop tem esta deficiencia, será que não existe nenhum metodo com matrizes que seja mais eficiente? Parabens estou sempre acompanhando seu trabalho!
Bom dia, obrigado, acredito que com array ficaria mais rápido, capturando todos os dados da coluna e percorrendo pelo array para ver quantas linhas tem dados.
Rapaz, seus vídeos são muito bons. Parabéns pela didática. Eu tô procurando um script para por na planilha para quando eu clicar em um botão (Novo Lançamento), a planilha ir para a próxima célula vazia da coluna A, mas não estou achando. Tentei fazer por macro mas não deu certo
@@CanalSGP Entendo, para uma coluna eu já achei. O que eu não consigo é selecionar um range da coluna B até F e aplicar o getLastRow()...Mas obrigado pela resposta mesmo assim 👍
Bom dia, verifique se o nome renomeado da planilha está exatamente igual ao que colocou no código, se tiver algum espaço por exemplo, não vai funcionar.
Bom dia, getlastrow localzia a última linha de toda a guia da planilha, não em coluna específica, pelo menos até hoje não encontrei uma forma de localizar com este comando em determinada coluna.
Boa tarde, já fiz isso algumas vezes. Além de prejudicar muito o canal, acaba gerando mais dúvida devido falta de entendimento dos scripts, devido não acompanhar o passo a passo.
Seu trabalho é incrível!! Nunca desista, você faz tão bem e com tanta vontade de ensiar que da gosto de ver! Estou aprendendo muito com você e sempre que tenho alguma dúvida minha primeira busca é aqui no seu canal.
Boa noite, obrigado, sucesso em seus estudos.
Ótimo me ajudou muito. Este script combinado com o de envio de e-mail resolveu meu problema. Muito obrigado...
Boa noite, obrigado, que bom que conseguiu.
Ótima aula, porem teria alguma maneira de "limitar" o código baseado em outra coluna?
Por exemplo, eu gostaria que o código fosse até a última célula preenchida na coluna A.
Boa tarde, acredito que seja o mesmo código deste vídeo, só vai alterar as referências.
muito bom, pode me ajudar de como fazer script para localizar celula vazia e preencher o valor com a celula acima.
Bom dia, obrigado. Segue exemplo:
guia.getRange(linha, 3).setValue(guia.getRange(linha - 1, 3).getValue());
Muito bom o vídeo, mas teria algum jeito de usar o script ensinado no vídeo
"Macro de Script para COPIAR DADOS de uma Guia para Outra no Google Sheets"
junto com esse para ele identificar a ultima linha com dados de uma determinada coluna, como a coluna C ao invés de verificar as informações da coluna A.
Agradeço desde ja!
Boa tarde, teste no lugar da variável linha colocar o código a seguir.
var linha = 1;
while(guiadados.getRange(linha, 3).isBlank()==false){
linha = linha + 1
}
Parabéns pela didática! Estou tentando criar uma macro que teria que fazer determinada função: Copiar todos os dados da linha onde a célula estiver selecionada, exemplo: Célula selecionada "S1421" da "aba GERAL" , logo toda linha 1421 da "aba GERAL" seria copiada para a aba "PROCESSOS ARQUIVADOS" e colada na primeira linha vazia da coluna A. Em seguida volta para a aba "GERAL" e exclui a linha que acabou de ser copiada, neste caso "1421".
E por fim a mensagem "Processo arquivado com sucesso!".
Este seria o comando e que toda vez que ele for acionado através do botão "ARQUIVAR", fazer todo o processo onde a célula estiver selecionada célula "S50", "S935", etc.
Estou com dificuldades, pois não consigo referenciar através da célula secionada para que o comando funcione. Fiz um teste definindo a linha (mas preciso que seja onde a célula estiver selecionada). Vou postar aqui:
function CopiareColar2() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(spreadsheet.getCurrentCell().getRow(), 1, 1, sheet.getMaxColumns()).activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('PROCESSOS ARQUIVADOS'), true);
spreadsheet.getRange('GERAL!10:10').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('GERAL'), true);
spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
};
O problema é que ele só copia a linha 'GERAL!10:10' quando cola na aba PROCESSOS ARQUIVADOS, cola na célula A1 e não na célula vazia da coluna A.
Bom dia, vou estudar uma lógica neste sentido, se obtiver sucesso posto vídeo no canal.
@@CanalSGP Acho que este script pode ajudar. Mas ainda não consegui rodar entre as duas abas.
gist.github.com/develmaycare/4e72e72ae0be85a8efe7a525267afbc3
Boa tarde, vou dar uma olhada no script.
Muito bom! Funcionou aqui. Mas como faço para que ele preencha automaticamente todos os campos vazios? Sem que eu tenha que clicar em executar a todo momento?
Boa tarde, obrigado, para salvar ou editar é outro procedimento, segue link de exemplo. ua-cam.com/video/BuRERRDyqKg/v-deo.html
Parabéns !! E para verificar se uma célula específica está vazia ou não ?
Boa tarde, acredito que vai precisar de if. Ex:
If (Celula == ""){
está vazia
}
Muito bom o script entretanto se temos muitas linhas ele torna-se lento, as estruturas em loop tem esta deficiencia, será que não existe nenhum metodo com matrizes que seja mais eficiente? Parabens estou sempre acompanhando seu trabalho!
Bom dia, obrigado, acredito que com array ficaria mais rápido, capturando todos os dados da coluna e percorrendo pelo array para ver quantas linhas tem dados.
essa formula resolve, usando as propriedades da planilha,ficou bem rápido!
let targetRow = (sheetDestiny.getRange('a1:a').getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow() + 1);
digo código e não formula
Que bom que resolveu.
Se ao invés de localizar uma linha vazia eu quiser localizar um texto ou palavra na planilha como faço??
Boa tarde, talvez o procedimento do vídeo no link a seguir atenda sua necessidade. ua-cam.com/video/IKKoBAm0TiU/v-deo.html
Rapaz, seus vídeos são muito bons. Parabéns pela didática.
Eu tô procurando um script para por na planilha para quando eu clicar em um botão (Novo Lançamento), a planilha ir para a próxima célula vazia da coluna A, mas não estou achando. Tentei fazer por macro mas não deu certo
Bom dia, obrigado, exatamente neste sentido ainda não tenho lógica.
Como faço para localizar a última linha apenas nas colunas que eu selecionar?
Boa tarde, único procedimento que sei até o momento é o deste vídeo, mas é para uma coluna.
@@CanalSGP Entendo, para uma coluna eu já achei. O que eu não consigo é selecionar um range da coluna B até F e aplicar o getLastRow()...Mas obrigado pela resposta mesmo assim 👍
tem como adicionar uma coluna numa planilha dinamicamente pelo appsheets?
Boa tarde, não fiz nada com appsheets até o momento.
fiz conforme mostra no video, mas aqui fica um loop eterno, o que sera que aconteceu, o codigo esta correto, ja verifiquei
pode me ajudar ?
Boa tarde, é difícil dizer de certeza o que pode ser, compare o código da aula:
function linhavaziacoluna() {
var planilha = SpreadsheetApp.getActiveSpreadsheet();
var guia = planilha.getSheetByName("Dados");
var linha = 1;
while(guia.getRange(linha, 3).isBlank()==false){
linha = linha + 1
}
guia.getRange(linha, 3).setValue("TESTE");
Browser.msgBox(linha);
}
@@CanalSGP estava correto, mas veja o erro que aparece:TypeError: Cannot read property 'getSheetByName' of null
Bom dia, verifique se o nome renomeado da planilha está exatamente igual ao que colocou no código, se tiver algum espaço por exemplo, não vai funcionar.
@@CanalSGP Tô com o erro
TypeError: Cannot read property 'getRange' of null
boa tarde aqui deu erro aparece erro de informção
Boa tarde, não enfrentei esta mensagem de erro ainda, não sei dizer exatamente o que pode ser.
@@CanalSGP descobri o que era
Como usa o Get Last Row?
Bom dia, getlastrow localzia a última linha de toda a guia da planilha, não em coluna específica, pelo menos até hoje não encontrei uma forma de localizar com este comando em determinada coluna.
dica: coloca os scripts na descrição assim da de copiar e colar
Boa tarde, já fiz isso algumas vezes. Além de prejudicar muito o canal, acaba gerando mais dúvida devido falta de entendimento dos scripts, devido não acompanhar o passo a passo.