a gente programação mais usada em todo o mundo a função mais poderosa do Google planilhas e além é claro de automações e integrações entre diversos aplicativos se você se interessou por qualquer um desses assuntos vem comigo porque agora a gente vai começar o minicurso de app script a justiça militar americana determina a toda e qualquer oficial que enviar o seu soldado para uma batalha sem uma arma que ele seja julgado pelo tribunal militar bem deveria haver uma proteção semelhante a todos os alunos de engenharia porque os alunos de engenharia não deveriam ser enviados para a
vida para o mercado de trabalho sem a habilidade de programar e isso porque o seu sucesso como Engenheiro como engenheira será amplamente determinado pela sua capacidade de solucionar problemas e eu sei que você pode ter sucesso Nisso porque hoje o acesso ao conhecimento está muito mais disponível em qualquer meio de comunicação em qualquer aparelho eletrônico Você pode ter acesso ao conteúdo para estudar para praticar e para adquirir conhecimento e um desses conteúdos Claro é o que você está acessando agora é esse minicurso e aqui vai minha promessa o meu objetivo hoje é que nos próximos
60 minutos você tenha contato com uma nova ferramenta que você pode adicionar ao seu Arsenal Então vamos nessa tá o que que a gente vai aprender hoje hoje eu vou apresentar para vocês uma ferramenta chamada Google Apps Script o Google é uma plataforma baseada na linguagem de programação já vai script através desta ferramenta a gente pode fazer automações e integrações em aplicativos Google ou seja Google workspace como Google cheats Google forms entre tantos outros Hoje eu e você juntos ao final dos conceitos na nossa parte final desse minicurso vamos construir um projeto do zero Vamos
Construir uma planilha automatizada que vai gerar um arquivo PDF um relatório do formato PDF e enviá-lo automaticamente através do Gmail mas eu quero deixar bem claro que o app script Ele é bem versátil Ele é bem flexível então aqui eu estou apenas sugerindo uma utilização para que a gente possa aplicar e entender os conceitos Mas tenha em mente que você vai poder aplicar em qualquer tipo de automação e qualquer tipo de projeto ou outros aplicativos que você se sente familiar e necessita dessa automação ou integração então em suma o app script é o script que
fica por trás dos aplicativos da Google e com ele você vai poder conectar os aplicativos Google entre si também beleza Mas eu preciso falar para vocês que a gente tem alguns requisitos alguns conceitos fundamentais que sem eles é impossível a gente começar a aprender apps script mas a boa notícia é que são apenas dois requisitos e quais são eles primeiro você precisa estar familiarizado com o aplicativo que você deseja automatizar ou caso queira realizar uma integração de aplicativos você precisa ter familiaridade Com estes aplicativos segundo requisito você precisa ter familiaridade nos conceitos básicos uma noção
básica introdutória da linguagem de programação que é utilizada no Google App script E como eu já citei é o JavaScript a linguagem mais famosa e utilizada em todo o mundo tendo esses dois requisitos em dia agora sim a gente pode partir direto para o Google aprender as suas particularidades E então aplicar no nosso projeto ao final desse curso se você não tem familiaridade com nenhum desses requisitos Fica tranquilo fica de boa porque eu e você vamos dar uma passada aqui vamos dar uma cancelada nos conceitos principais do Google planilhas e do JavaScript e com essa
visão geral que eu vou passar para vocês eu tenho absoluta certeza que vocês vão conseguir aprender app script e aplicar junto desse projetinho que a gente vai vai fazer juntos e o melhor usar em qualquer outro tipo de projeto que você queira fazer por conta própria Beleza então vamos nessa a gente vai começar aprendendo JavaScript bom se você algum dia já teve curiosidade em conhecer e aprender JavaScript bem Chegou a hora vamos lá passar pelos conceitos principais e fundamentais do JavaScript e eu me refiro a conceitos como variáveis objetos funções estruturas condicionais e estruturas de
repetição aprendendo essa sintaxe e algumas nuances que existem no java script a gente tá pronto para ir direto Beleza então agora dessa Então vamos lá galera vamos começar pelas variáveis variáveis bom como é que a gente declara uma variável no JavaScript é muito simples a gente vai usar o termo var de verbo então a gente coloca vá em seguida o nome da variável por exemplo nome e a gente pode atribuir qualquer valor a essa variável por exemplo Túlio se eu quiser printar o valor dessa variável no console eu vou usar o console ponto log e
dentro do parênteses eu coloco o nome da variável que contém o dado com isso eu posso rodar E tá lá o Túlio agora se por um acaso eu quiser mudar o valor dessa variável né inserir um outro dado nessa variável então é muito simples eu chamo variável e atribuo um novo valor a ela por exemplo Damasceno e agora o console.log ou não roda vai imprimir o Damasceno na tela Vale citar que o JavaScript é uma linguagem que utiliza o formato de tipagem dinâmica Ou seja a gente vai usar o termovar para qualquer tipo de variável
para qualquer tipo de dado eu não preciso não preciso determinar na declaração da variável que ela se trata de um de uma variável para armazenar números string objeto a Rei Não importa eu não preciso determinar o tipo de dado que essa variável vai armazenar porque eu JavaScript usam a tipagem dinâmica Ou seja a variável pode assumir qualquer tipo de dado você pode mudar quantas vezes você quiser o conteúdo daquela variável inclusive de diferentes tipos de dados tudo bem isso torna até a programação até mais simples Bom agora eu vou comentar esse trecho de código já
que aprendemos a declarar variáveis e comentar e vamos para o próximo tópico próximo tópico são as funções e aqui uma atenção uma atenção especial porque através dessas funções que a gente vai poder fazer as automações na Netflix sempre que você for automatizar qualquer coisa usando o script vai ser através das funções para declarar a função a gente vai usar a palavra a palavra reservada funcho em seguida o nome da função por exemplo em seguida abre parênteses dentro dos parênteses você pode colocar argumentos No meu caso eu vou colocar o a e o b e aqui
e aqui uma quando você está declarando uma função aquilo que está entre o parênteses a gente chama de parâmetro Beleza não esquece disso quando a gente tá declarando a função aquilo que está dentro do parênteses é o que a gente chama de parâmetro nesse caso eu tenho dois parâmetros eu tenho o a e o b e aqui dentro da Chaves eu posso colocar aquilo que eu quero que seja executado No meu caso eu vou colocar para que seja printado no console uma soma de A e B agora quando rodar não vai aparecer nada sabe por
quê Porque a gente apenas declarou a função agora a gente precisa chamá-la executá-la beleza como é que a gente faz isso é muito simples por algumas linhas aqui e coloco somar parênteses como eu estou chamando a função somar aquilo que está entre parênteses agora é denominado de argumento quando a gente declara é parâmetro quando a gente chama é argumento então vou passar com o argumento os números 5 e 10 e vou executar 5 + 10 15 tá lá o resultado no console agora eu vou apresentar para vocês Talvez o conceito mais importante do JavaScript é
o que chamamos de objetos agora vou comentar esse código esse trecho de código e vamos lá para os objetos objetos bem objeto é uma estrutura de dado nele você pode armazenar diversas informações é como uma Rei por exemplo mas é um pouco diferente e vou mostrar para vocês como é que é a sintaxe dele como ele funciona então objeto ele deve ser armazenado dentro de uma variável para isso eu vou usar o termo vá Como já tinha como já falei para vocês e vou colocar aqui vou chamar essa variável de Túlio dentro dessa variável armazenar
um objeto e para chamar para declarar um objeto eu basicamente coloco duas Chaves vou abrir essa chave para poder para poder trazer as informações para dentro desse objeto diferente do Array em que cada posição do rei é numerada começando da posição zero e assim por diante zero um dois três e assim por diante no objeto cada posição ela é nomeada ou seja não é a posição zero um dois e três não é assim que funciona cada posição você pode atribuir o nome para aquela posição que você desejar e na verdade no objeto a gente não
chama mesmo não chama bem posição no objeto a gente chama de propriedades do objeto Então vou declarar que algumas variáveis para você como é que funciona primeiro propriedade vai eu vou chamar de nome e dentro dela vou colocar o meu nome Túlio em seguida vírgula e agora vou declarar outra outra propriedade por exemplo idade e aí eu vou colocar 21 vírgula e por fim por fim atribuir uma propriedade chamada Hobby e vou colocar aqui que eu gosto de fazer que é joga basquete e pronto tá lá tenho três propriedades colocadas dentro do meu objeto então
aquilo que tá dentro da chave tudo isso aqui que tá dentro da Chaves é o meu objeto que está armazenado na variável Túlio dentro desse objeto Túlio eu vou ter três propriedades nome idade e Hobby cada propriedade tem o seu valor Túlio 21 e basquete beleza mas aí se eu colocar por exemplo aqui console ponto log e dentro eu colocar para ser impresso para ser printada no console a variável Túlio ó o que vai aparecer o objeto completo ali ó tá vendo as chaves né as propriedades nome idade e Hobby e os seus respectivos valores
que estão armazenando né mas olha que interessante se por um acaso eu quisesse que fosse printado lá no console apenas o meu hobby como é que eu faço isso é aí que vem assentasse que eu vou mostrar para vocês agora para que a gente possa acessar as propriedades do objeto e é muito simples é apenas usando um ponto Olha que interessante Então vem aqui ó depois de Túlio e coloca um ponto A partir de agora eu vou acessar as propriedades do objeto Túlio nesse caso eu quero acessar qual a propriedade Hobby Então vou digitar Hobby
Então agora eu vou rodar de novo e vamos ver o que aparece tá lá basquete bem isso aqui é o mais importante de objeto essa sintaxe do ponto de poder acessar as propriedades objetos e são mais importantes mas tem uma última coisa que eu preciso falar para vocês se por um acaso dentro do objeto Túlio colocar aqui mais uma propriedade vírgulaninha e vou declarar aqui uma propriedade chamada apresentação certo dentro da propriedade da apresentação eu vou colocar uma função Olha que interessante lembra lá da função que a gente viu agora pouco pronto eu vou colocar
dentro dessa propriedade apresentação Então vou colocar aqui function declarar a função aqui inclusive o nome da função vou chamar de apresentação E aí dentro dessa função dessa função aqui ó que eu tô declarando eu vou colocar o seguinte Olha que interessante eu vou trabalhar com as outras propriedades que eu já tenho né eu vou declarar algumas variáveis aqui dentro vou chamar de uma variável nome e dentro da variável nome eu vou armazenar o Túlio ponto o nome e outra variável eu vou colocar a idade vou armazenar o que o Túlio quantidade e por fim o
hobby que eu vou armazenar o Túlio ponto Hobby bom então agora que eu declarei essas variável Opa ficou faltando ó muito cuidado aqui coloquei o hífen ao invés de um igual Então deixa eu apagar aqui coloquei igual Beleza agora eu vou colocar um console ponto log certo eu vou manipular essas essas informações que eu tenho nessas variáveis então console ponto log e dentro do console.log Olha o que eu vou colocar eu vou abrir um string né colocando essas aspas pode ser inclusive aspas simples ou aspas duplas tanto faz eu vou usar aspas simples aqui e
para colocar treinar duas duas Strings ou dois ou dois duas variáveis dois dados não importa você vai usar o mais é como a gente concatena no JavaScript entre essas duas Strings eu vou colocar variável nome certo lembrando varejo nome quer tratar armazenando ela tá armazenando o Túlio essa Extreme Túlio por quê Porque ela tá acessando a propriedade nome do objeto Túlio beleza em seguida eu vou colocar assim espaço tem aí aqui vou colocar a idade com katenar com espaço anos e gosta de espaço e com capinar com Hobby por fim um ponto então o que
é que vai aparecer em tese né Túlio tem 21 anos e gosta de basquete ponto vamos ver se funciona mas antes de ver se funciona né primeiro a gente precisaria chamar essa função como é que a gente faria a gente acessaria primeiro o objeto Túlio em seguida uso ponto para poder acessar as propriedades desse objeto qual a propriedade que eu quero acessar a apresentação mas como apresentação armazenou uma função eu preciso colocar parênteses e aqui vem uma observação todo objeto ele tem várias propriedades certo objeto vai ter propriedades essas propriedades elas vão armazenar dados tudo
bem mas como a propriedade ela armazena uma função a gente deixa de chamar essa propriedade de propriedade e passa a chamá-la de método Então quando você tem uma função dentro de uma propriedade de um objeto você agora passa a chamar essa propriedade de método Beleza então na verdade apresentação é um método do objeto Túlio Vamos ver que que aparece agora aqui no console Acabei de limpar ele porque eu tava fazendo uns testes mas vamos ver o que que aparece agora ao rodar o script tá lá Túlio tem 21 anos e gosta de basquete beleza isso
é o mais importante de objetos isso aqui é muito importante a gente vai usar bastante no nosso projetinho Beleza vou comentar esse trecho de código e vamos para os nossos últimos conteúdos e JavaScript são os mais fáceis agora as estruturas condicionais e de repetição vou colocar tudo no tópico só e de repetição beleza galera é muito parecido com outras linguagens para você usar o if aqui no JavaScript você vai colocar if depois parênteses aí você vai colocar condição aqui então se um é igual a 1 vai executar o que tá dentro da aspas na verdade
das chaves por exemplo do console.log Vou colocar aqui deu certo beleza caso não seja igual a um caso um não seja igual a 1 Aí você coloca aqui após as chaves o Élcio abre outra chave e bota que você quiser que seja executado por exemplo não deu certo vamos executar que aparece deu certo porque um é igual a um mas agora olha que interessante se eu colocar uma string contendo o valor um Vamos tentar vamos ver o que que aparece deu certo também sabe por quê Porque o operador lógico igual a igual ele compara apenas
o conteúdo dos dados apenas os conteúdos daqueles dados se você quiser comparar tanto o conteúdo quanto o tipo daquele dado nesse caso temos um Number um número e uma string se a gente quiser comparar Além do valor comparar o tipo de dado a gente precisa adicionar mais um igual quando a gente coloca esse outro aparador lógico com três iguais aí sim a gente tá comparando de forma mais específica quando a gente apertar para rodar agora não deu certo porque um número é diferente de 1 estende Beleza vou comentar esse trecho de código e vamos para
a última para última assunto que é estrutura de repetição e aqui muito simples também foco dentro do parêntese você vai declarar uma variável que vai ser o seu contador por exemplo um vou colocar para começar no zero e vai rodar o foco enquanto o I for menor do que 10 e o i sempre vai ser incrementado em um a medida que finalizar o laço finalizar a execução do foco e aqui dentro eu vou colocar o console ponto log 1 beleza na verdade consegue ponto log e beleza vamos ver o que aparece agora quando rodar tá
lá 0123 até o 9 e para no 10 porque o isso só executa enquanto for menor do que 10 bom gente espero que vocês tenham conseguido acompanhar esses assuntos esses fundamentos da linguagem de programação JavaScript se você não conhecia foi uma ótima oportunidade para ter o primeiro contato Eu particularmente gosto bastante da sintaxe dessa linguagem e é o que a gente vai estar utilizando nossos projetinhos de app script Mas a gente não para por aqui ainda falta mais um requisito e esse requisito para o nosso caso agora é o Google planilhas porque esse aplicativo que
a gente vai usar para o nosso projeto eu não vou passar horas explicando sobre o Google planilhas a gente vai ver apenas duas funções que são muito importantes para que a gente possa fazer a nossa planilha e já dando spoiler vai ser uma planilha de controle financeiro Então vamos lá aprender sobre Google planilhas agora sobre o Google planilhas precisamos conversar sobre duas funções que vão Para gente para o nosso projeto ela se chamam sorte e curry sendo a curry a função mais poderosa de todo o Google planilhas então também uma ótima oportunidade para você ter
contato com essa função Então bora lá para a gente começar a aprender as funções eu coloquei essa pequena base de dados aqui bem simples apenas com cinco nomes e cinco idades então eu tenho essa base de dados caso eu queira ordená-la de outra forma eu posso usar uma função chamada sorte então vou entrar aqui nessa célula vou digitar igual sorte e aqui vem conceitos de programação que a gente vê agora pouco que é o conceito de função sorte é a função que a gente está chamando dentro do parênteses Vamos colocar os argumentos nesse caso o
primeiro argumento quando você aperta nesse nesse nessa interrogação vai trazer essa sintaxe aqui que vai te ajudar a usar essa função primeiro argumento é o intervalo Então posso selecionar o intervalo puxando com o mouse da primeira célula até a última ou eu poderia simplesmente digitar a um dois pontos B6 para finalizar esse argumento eu uso ponto e vírgula e passa para o próximo que a coluna que eu quero classificar nesse caso eu quero classificar pela idade ou seja vou colocar a coluna 2 que nesse caso é referente a coluna B F o terceiro argumento é
se eu quero que ele ordene de forma crescente ou decrescente como eu quero que seja de forma crescente eu vou colocar um e posso fechar a minha função antes de dar enter eu vou fazer apenas uma correção ao invés de colocar da A1 até a B6 eu vou colocar da A2 porque eu quero apenas os nomes aquele aquela primeira linha eu coloquei apenas para referenciar e ficar mais fácil para vocês entenderem Agora sim ao fechar essa função com parênteses e pressionar o enter tá lá a base de dados ordenada de forma crescente 20 21 22
23 e por fim 25 beleza essa é a primeira função que eu quero que vocês tenham em mente para que quando a gente for para o projetinho vocês possam acompanhar a segunda função que a gente vai vai aprender é a Cory eu vou trazer um exemplo bem simples mas saiba que essa função é extremamente poderosa quer que eu vou fazer eu vou vir nessa célula G1 e vou adicionar a função como qualquer função eu preciso passar os argumentos para executá-la o primeiro argumento como vocês estão vendo aqui na ajuda vai ser os dados a base
de dados e quer que eu vou usar eu vou usar essa que eu acabei de ordenar o segundo argumento é a consulta e Aqui é onde a mágica acontece na verdade aqui onde tudo acontece da função Cury Você vai precisar Abrir duas aspas certo dentro dessas aspas a gente vai usar uma sintaxe semelhante a uma linguagem chamada SQL a linguagem de consulta estruturada que é usada em diversos contextos da programação mas não precisamos aprender agora vamos aprender o que é que a função Cury quer receber vamos lá a função Cury ela serve para a gente
poder filtrar de alguma forma aquilo que a gente quer daquela base de dados que a gente tá analisando quer que eu vou querer puxar dessa desse intervalo aqui que está em amarelo eu vou querer que ele me traga apenas o nome das pessoas e a idade daquelas que tiverem uma idade menor do que 23 Tudo bem então seria o Gabriel né o Túlio e a Kaline Rafael Rodrigo não viriam após a gente filtrar com a função Cury como é que a gente faz isso a gente vai fazer o seguinte select as colunas de e é
que são essas duas aqui Where onde a coluna é for menor do que 23 Ou seja a função Kerry vai selecionar as informações da coluna de sempre que a coluna é for menor do que 23 agora eu posso fechar o parênteses E tá lá Gabriel tule Kaline os únicos que tem menos de 23 anos beleza Esse é um exemplo simples para que você entenda como funciona a função Cury e portanto consiga acompanhar no nosso desenvolvimento do nosso projeto que vamos fazer instantes bom galera sobre Google planilhas era basicamente isso agora a gente vai dar uma
olhadinha diretamente naquilo que vocês vieram aprender que é o app tranquilo a gente vai ver como é a ideia a gente vai ver as principais classes e algumas algumas particularidades dessa plataforma e logo em seguida vamos direto para a construção do projeto agora que temos os dois requisitos em dia agora sim vamos aprender aquilo que a gente tanto quer aprender que é o Google sobre esse tópico antes da gente ir para o projeto é claro eu preciso mostrar para vocês aqueles conceitos iniciais como criar um script lá no Drive né como poder referenciar a Qual
documento você vai querer automatizar Quais aplicativos você vai querer integrar como executar todas as automações que a gente pretende fazer e eu vou mostrar para vocês agora inclusive podem acompanhar Eu recomendo que vocês utilizem se possível uma conta do Google institucional porque você vai ter acesso a scripts de forma ilimitada Isso é muito bom mas se você tiver usando o seu gmail pessoal também não tem problema não tem problema nenhum então vamos lá então aqui estou eu na minha pasta onde eu criei a planilha funções importantes que acabamos de criar e vou mostrar para vocês
duas formas de gerar um script do Google a primeira forma e a que eu recomendo é você acessar o seu arquivo que você quer automatizar Então nesse caso funções importantes e aqui dentro da planilha você pode apertar em extensões e logo em seguida script muito simples e pronto você está dentro da ide do app script é aqui onde você vai poder usar o JavaScript e os seus conhecimentos relacionados aep script e ao aplicativo que você deseja automatizar e criar os seus scripts beleza Vale citar que quando você gera um script dentro de um aplicativo Google
que foi o que a gente acabou de fazer usando o Google planilhas saiba que esse script que você acabou de gerar ele está vinculado com esse arquivo com essa planilha que você utilizou para gerar o script eles estão conectados quando você for para o script você não precisa referenciar essa planilha usando o link do URL dessa planilha por exemplo não porque ele já estão conectados agora voltando aqui para o meu drive para minha pasta eu vou mostrar para vocês a segunda forma de criar o script que é um script independente em que você pode ver
aqui em novo mas escrito do Google Apps ao apertar inscritos você vai ser direcionado para o seu script que você tá acabando de gerar e Vale ressaltar que esse script que você acabou de gerar ele não está vinculado com nenhum arquivo com nenhuma planilha com nenhum formulário com nenhum documento ou seja ele é completamente independente E aí sempre que você quiser acessar informações de algum arquivo Você vai precisar referenciar utilizando o URL o link daquele arquivo Tranquilo então para o nosso caso a gente não vai usar essa opção a gente vai usar a opção do
script que está vinculado diretamente com o nosso arquivo que no nosso caso é aquela planilha volta para lá então voltei aqui para planilha e agora você sabe o escrito dela Beleza tô aqui no escritório da minha planilha aqui galera eu vou começar a familiarizar vocês um pouquinho com esse ambiente então você pode dar um título para o projeto por exemplo introdução a webscript renomear e você vê de cara que aqui tem os arquivos Você pode adicionar novos arquivos que pode ser no formato de script né que vai aceitar o Java script ou HTML fique à
vontade a gente vai para o nosso projeto e vai usar apenas um arquivo mas isso aqui é como você vai modularizar o seu o seu projeto é mais questão de organização enfim para o nosso caso vamos usar apenas o arquivo código E aí você vê que aqui já vem de cara por padrão com essa função ó denominada de my function mas não tem nada dentro dela e vamos lá vamos começar a aprender primeira coisa que eu quero mostrar para vocês é como funciona como é o console do Jeep script lembra lá quando a gente tava
aprendendo o Java script a gente usava o console.log Pois é aqui na descrição logger mas funciona da mesma forma aqui dentro a gente pode colocar o que a gente quiser por exemplo olá mundo agora vou salvar esse botãozinho aqui e pronto depois que o projeto Tá salvo ele pode agora passar a ser executado porque porque a gente adicionou um conteúdo dentro da função e agora ela pode ser finalmente executada antes ela não tinha nada então não tem nem como executar Então agora eu posso escolher aqui ó Nessa opção ó selecione a função para executar Isso
significa que se eu tivesse várias funções aqui que é o que a gente vai fazer inclusive várias funções aqui para a gente poder selecionar Qual a gente quer executar aqui na ideia a gente vai usar essa setinha Beleza vou apagar aqui E qual é a função que eu vou usar a única que tem que é mais infantil certo eu vou até renomear ela vou colocar de início ao salvar você vai ver que mais funciona aqui ó vai mudar para início então acabamos de declarar a nossa função para que essa função seja executada a gente precisa
chamar ela lembra e aqui na script dentro da ideia a gente pode chamar não precisa necessariamente colocar aqui início e em seguida o parênteses a gente não precisa fazer dessa forma quando a gente tá aqui dentro da ideia fazendo os testes enfim a gente pode usar apenas o botão executar porque quando a gente apertar o botão executar o app script entende que ele deve Executar a função que a gente selecionou aqui ó que no caso o início então é como se essa opção aqui ela tivesse chamando a função e aí ao apertar executar vai ser
executado o que está dentro da função vamos ver executar e tá aqui ó esse é o console do Up script posso aumentar aqui um pouquinho e você pode ver que foi printado a mensagem olá mundo esse login esse console aqui ele vai ser muito útil para gente Para a gente durante o desenvolvimento do código a gente fica constantemente fazendo códigos e não passar muito tempo sem ver se tá dando certo e não correr o risco de fazer muitos retrabalhos beleza então primeira coisa que eu queria falar para vocês é o console do app script segunda
coisa é que não é script a gente tem diversos diversas funções que já vem embutida assim no próprio script já é como se fosse da biblioteca de script E aí falando em biblioteca documentação vocês vão poder acessar o site oficial da pepscript então vamos no Google aqui e digitar Google Apps a primeira opção é esse aqui ó Google e esse é o site oficial do Google App script aqui você vai ter toda a documentação necessária que você vai precisar para os seus projetos então se eu quiser saber como enviar um e-mail automaticamente como usar uma
determinada um determinado método uma determinada função é nesse site você pode navegar e se aventurar por ele beleza essa aqui é a nossa é a nossa referência mas agora voltando aqui para o script eu preciso mostrar para vocês as principais classes né que são grandes objetos que nesses objetos estão contidos diversos métodos diversas propriedades que a gente vai poder usar e que já tá Prontinho na biblioteca devecript a gente vai poder usar todos esses métodos todas essas propriedades e assim conseguir fazer as nossas automações E integrações então primeiro para o nosso caso mais importante como
é que a gente acessa os métodos que são referentes ao Google planilhas a gente precisa chamar a classe do Google planilhas que é spread shit up ela vai ter diversos métodos para acessar esses lembram É só usar o ponto então quando eu coloco o ponto vocês vão ver que vão ter aqui ó diversos métodos diversas propriedades que você vai poder usar isso serve não só para Google planilhas existem outras classes como por exemplo Google Docs você vai usar o document App o Google forms você vai usar o fome app o Gmail você vai usar o
Gmail o Google slide você vai usar o slides app e assim por diante Então sempre que você quiser acessar algum arquivo seja qualquer um desses tipos de arquivos Você vai precisar primeiramente acessar a classe dele e em seguida os métodos para fazer as automações no nosso caso a gente vai estar utilizando duas classes poderia a gente poderia usar o Gmail app também sem problema algum mas para o nosso caso para o nosso projeto a gente vai usar o meio app que é praticamente a mesma coisa então essa vão ser as duas classes e dentro delas
vamos usar alguns métodos prontos do próprio app script para a gente fazer nossas automações tranquilo galera parece pouco né eu mostrei para vocês o console mostrei para vocês o ambiente e mostrei para vocês algumas classes mas a gente entrar em detalhes eu vou deixar para o nosso projeto eu quero que vocês aprendam na prática vamos vamos colocar em prática Vamos colocar a mão na massa já produzindo esse nosso projetinho vocês vão me acompanhar nesse desenvolvimento e vocês vão aprendendo na bicicleta durante o desenrolar desse projeto eu tenho certeza que vocês vão conseguir acompanhar e vão
aprender muito mais a gente já colocando a mão na massa Tranquilo então o nosso projeto vai ser uma planilha de controle financeiro eu vou disponibilizar aqui no link do YouTube para vocês acessarem a planilha criarem uma cópia dessa planilha e desenvolver o script de vocês nessa planilha que você nessa cópia que vocês vão gerar bem nessa planilha a gente vai gerar um relatório transformando ele em um arquivo PDF e enviando esse arquivo PDF através do e-mail beleza eu tenho certeza que colocando a mão na massa vocês vão aprender muito mais sobre app script e para
essa parte introdutória era basicamente isso familiares a vocês com alguns conceitos iniciais e com o ambiente Então vamos nessa Vamos colocar a mão na massa bom pessoal aqui na descrição do vídeo vai ter um link para a planilha que vocês estão vendo aqui na tela é essa planilha que vamos usar para o nosso projeto de automação integração com APP Tranquilo então acessem essa planilha e quando vocês entrarem nela vocês vão perceber que ela vai estar bloqueada para edição como vocês podem ver aqui você só pode visualizar E aí para que você possa fazer o seu
próprio código e fazer o seu próprio projeto colocar você colocar a mão na massa você vai ter que vir aqui em arquivo e apertar em fazer uma cópia logo em seguida você vai ver essa pequena caixa e ela vai estar informando o seguinte a funcionalidade e o arquivo do Web script também serão copiados mas eu já adianto para vocês que ao apertarem no link e seguir esse passo a passo para gerar cópia a cópia que você gerarem não vai vir acompanhada de script nenhum na verdade já vai ter lá o ambiente para você poder entrar
e colocar o seu código e começar a programar Mas não vai ter nenhuma linha de código pré-pronta E aí vocês vão precisar conversar do zero junto comigo tudo bem isso é até bom porque a gente vai aprendendo desde o início Então vamos nessa então agora aperta aqui em fazer uma cópia e pronto como vocês podem ver aqui ó cópia de controle financeiro e agora sim eu posso editar essa planilha e fazer o meu script Beleza então vou apertar aqui em extensões é script Então pronto galera aqui tá um script da Cópia que a gente gerou
e como vocês podem ver não tem nenhuma linha de código isso é bom porque você vai poder desenvolver junto comigo do agora voltando aqui para planilha antes da gente começar mesmo a desenvolver Eu quero primeiro contextualizar vocês de como funciona essa planilha vamos nessa Então você como vocês podem ver nós temos cinco Abas cadastro auxiliar movimentações gerador de relatórios e por fim relatório Então essa abacadastro é basicamente para que o usuário possa Preencher esses campos cadastrar uma movimentação financeira seja uma entrada ou uma saída financeira a segunda aba é a aba Para onde as informações
da abacadastro vão ser armazenadas é uma espécie de base de dados a aba movimentações é onde nós vamos ordenar aquilo que está na aba auxiliar ou seja vamos pegar todos os dados da Aba auxiliar e distribuir na água movimentações só que de forma ordenada em seguida a aba gerador de relatórios é aqui onde usuário pode selecionar e filtrar as informações que ele quer para o relatório Pode ser que o usuário não queira todas as movimentações financeiras ele quer ele queira só de um específico ano de um mês específico ou de uma categoria de gasto ou
de entrada de saída de entrada específica então aqui é um ambiente para que o usuário possa filtrar e gerar os seus relatórios bem como enviar os seus relatórios colocando a mensagem no corpo do e-mail E quem seria o destinatário do e-mail E claro o fim nós temos a aba para o relatório é esse que vai ser enviado para o e-mail do destinatário e como vocês podem ver não tem nada porque porque primeiro não temos base de dados segundo não temos parâmetros adicionados para que o relatório fosse gerado então por isso aqui está mensagem adicione os
parâmetros Beleza então se a gente começar eu só tenho duas observações vocês lembram daquelas fórmulas que a gente viu do Google planilhas Pois é a gente vai utilizar É nós duas caso você por curiosidade querer entender mais ou menos como funciona a função sorte nós vamos usar aqui na aba movimentações para ordenar os dados da Aba auxiliar Beleza já a fórmula quérie nós vamos usar na aba relatório e ela está nessa primeira célula aqui também você dá dois cliques vocês vão ver que vai aparecer toda essa fórmula aqui bem grande e por sinal é bem
grande mesmo mas é com todo esse com toda essa fórmula aqui com várias condições encadeadas que a gente vai conseguir gerar o relatório que o usuário deseja lembre-se o foco da aula não é o Google planilhas eu estou apenas familiarizando vocês o foco aqui é o app script que a gente vai desenvolver juntos mas caro caso você esteja com curiosidade e descobrir como funciona a geração desse relatório aqui está a fórmula que a gente vai estar utilizando dessa planilha para que o relatório seja exagerado então você pode olhar com calma para ver se consegue compreender
o que é que está sendo feito aqui mas lembrando o foco aqui é o app script Tranquilo então é isso agora que a gente teve uma contextualização de como funciona a planilha e já viu que o nosso script está zerado está vazio agora vamos lá começar a resolver o nosso projeto de controle financeiro o primeiro passo vai ser a gente pegar os dados que o usuário preencher e ao ele apertar no botão cadastrar esses dados são automaticamente levados para a aba auxiliar e dispostos dessa linha Além disso os dados após serem enviados para lá precisam
ser limpos para que um próximo usuário possa vir aqui e cadastrar uma próxima movimentação o até mesmo o próprio usuário cadastrar uma nova movimentação Então sempre que eu movimentação for cadastradam ser limpos tranquilo esse é o nosso primeiro desafio Então vamos nessa eu vou aqui para aba de script e aqui eu vou começar criando uma função chamada cadastrar certo quando o botão cadastrar for pressionado essa função cadastrar vai ser executada então é dentro dessa função que vamos colocar o código para que os dados sejam cadastrados e os campos sejam limpos mas antes de preencher essa
função cadastrar primeiro eu vou preparar o ambiente que essa preparação Eu Preciso Dizer para o meu script Qual é a planilha que eu vou estar trabalhando eu preciso dizer para o meu script Quais são as abas que eu vou estar usando certo Então essa é a primeira parte dizer qual é a planilha e quais são as abas para isso eu vou criar algumas variáveis então vá o chamado essa variável de planilha e dentro dela Eu vou acessar a classe script app lembrando essa classe é para que eu possa usar os métodos referentes ao Google planilhas
e agora colocando um ponto eu vou poder acessar todos os métodos referentes ao Google planilhas e o método que eu vou usar vai ser o seguinte get act e como é o método logo a função você coloca o parênteses sempre tá tudo o que é que eu vou estar armazenando dentro dessa variável pela direita basicamente essa variável vai estar acessando vai estar acessando a planilha Porque o método get active que é que ele faz ele seleciona a planilha ativa e esse script ele vai entender que a planilha aquele se refere é a planilha que está
vinculada a esse escrito já que a gente criou script a partir da planilha e não com um escrito independente caso fosse escrito independente vocês lembram né a gente precisaria usar o link URL ou ID da planilha Beleza então primeiro passo foi feito temos na variável planilha a planilha que estamos usando a planilha controle financeiro acessada Agora eu preciso de uma variável para acessar as abas da planilha Então vou criar uma variável chamada cadastro e dentro dela eu vou chamar a variável planilha certo Lembrando que essa variável armazena o método get Active e esse método tem
outros métodos então eu vou usar o get cheat by danger Agora sim eu vou selecionar a aba cheat significa aba e eu vou declarar agora dentro dessas aspas o nome dessa aba que no caso é a abacadastro ou seja o que é que essa linha de código faz acessa a aba cadastro então planilha Lembrando que essa planilha Ela está armazenando um método get Actives pratte Ou seja quando eu chamo planilha basicamente eu estou acessando a planilha e logo em seguida eu vou querer acessar o que a aba que contém o nome auxiliar Então essa linha
de código basicamente acessa a aba auxiliar e pronto Nossa preparação Inicial está concluída Agora sim a gente pode começar a fazer a nossa função cadastrar eu vou salvar aqui o projeto e agora que o projeto Agora sim vamos lá dentro da função cadastrar o que é que eu vou querer fazer primeiro eu preciso que ao usuário pressionar o botão cadastrar o script ele armazene Dentro de algumas variáveis que eu vou mostrar que eu vou criar aqui os dados que o usuário preenchendo os campos e para a gente relembrar Quais são os dados eu vou abrir
aqui a planilha de novo então nós temos data tipo categoria descrição e valor são cinco dados que precisamos armazenar em cinco variáveis diferentes então eu vou criar uma variável para data dentro dessa variável que é que eu vou fazer para que eu possa acessar o dado daquela célula em que o usuário colocou a data primeiro eu preciso acessar a aba cadastro Então vou chamar a variável cadastro que é essa aqui galera ó essa aqui E lembrando que essa variável ela basicamente acessa a abacadastra Então como esse que eu quero fazer eu chamei a variava o
cadastro que é um método e dentro desse método eu vou ter outros métodos qual que eu vou usar eu vou usar o método get Range em outras palavras selecione ou intervalo e dentro das aspas eu vou colocar o intervalo aqui na planilha a gente tá vendo que o intervalo dessa célula da data é esse aqui ó C3 G3 então veio aqui control c volto lá para o meu script control v e pronto intervalos selecionado porém o sol selecionei um intervalo e não o conteúdo dele para acessar o conteúdo desse intervalo eu vou usar outro método
o método get Vale e esse método eu não preciso passar de um argumento e aqui este de serra então o que que essa linha de código faz ela armazena o valor do Campo data certo próxima variável vai ser tipo mesma coisa cadastro Vou acessar abacadastro Vou acessar o intervalo que a gente vai ver agora vamos botar lá para planilha olha aqui o tipo está na C5 Então dentro das Arcos eu coloco o C5 e vou acessar o valor desse intervalo Gueto e o parênteses não se esqueça porque isso é um método então o que que
essa de código faz armazena o valor do campo tipo e fazer a mesma coisa com todos os outros Campos Então vem agora categoria vai receber cadastro.get Rage overwatch selecionou a célula e vem aqui ó pega o intervalo control c volta para o script Control essa linha de código armazena o valor do campo categoria foto só dois agora né que é o campo descrição eu já vou até selecionar aqui o intervalo control c então descrição recebe cadastro português o argumento é uma string com o intervalo e agora eu vou acessar o dado desse intervalo o valor
desse intervalo essa linha de código armazena o valor do campo descrição E para finalizar nosso último dado é o campo valor então cadastro.get Range vamos ver qual é o Range seleciona a célula pego o intervalo com outro C Volta para o script control v e agora vou acessar o valor desse intervalo essa linha de código armazena o valor do campo valor e pronto vou salvar aqui o projeto se eu executar essa função o que é que vai acontecer nada porque primeiro essa função só declarou variáveis eu não tô fazendo nada com essas variáveis eu não
tô manipulando elas não tô indicando para o script que ele print essas variáveis eu faço alguma coisa com elas não eu tô apenas declarando estou apenas armazenando diversos dados bom uma vez que eu tenho esses dados em mãos armazenados Agora sim eu posso pegar esses dados e dispor eles na auxiliar lá naquela linha dessa linha aqui ó posso vir aqui na auxiliar e dispor os dados dessa linha aqui dois certo como é que eu vou fazer isso bom Antes de Voltar para o script eu preciso falar para vocês que o seguinte a data que vai
vir para cá ela vai vir por exemplo se eu colocar aqui 15/06 /2022 quando a data vinha para cá eu formatei essa coluna A para que quando eu colocar 15/06 aqui 2022 o que acontece ela mantém a barra tá vendo ó 15 barra 06/2002 essa aqui apenas para que o usuário possa ter uma experiência melhor eu coloquei 15 de junho de 2022 mas quando vier para cá vai estar nessa formatação porque isso é importante porque nessa nessas três colunas dia mês e ano que são importantes lá para o gerador de relatórios eu vou adicionar uma
fórmula chamada split é uma falta do Google planilhas e que que você faz com a fórmula expliquei você pega um texto no caso A2 e você pode separar usando um delimitador no caso eu usei o barra e é muito simples quando eu apertar e olha o que acontece ele separa a informação da célula 2 através delimitador que eu indiquei que foi a barra Então essa fórmula aqui explique ela vai precisar ser preenchida sempre que uma nova linha fosse sendo adicionada né A medida que for sendo cadastrada diversas movimentações vamos precisar de mais fórmulas split a
gente vai aprender a colocar fórmula em uma célula lá pelo script Tranquilo então agora eu posso apagar esse aqui e feito a observação vamos cadastrar as informações aqui na auxiliar vou voltar para lá como é que a gente vai fazer isso antes de começar a dispor as informações na aba auxiliar primeiro eu preciso de uma variável que vai armazenar o valor da última linha última linha tá Para que sempre que for adicionado uma nova movimentação ela seja adicionada na última linha que é a linha que está vazia a última linha Mais Mais uma ou seja
o script ele vai reconhecer Qual é a última linha que está preenchida lá na planilha lá na aba auxiliar e vai preencher os dados na linha seguinte a última linha e como é que eu vou fazer isso declarando variável chamada última linha dentro dela vou colocar auxiliar ponto get last Row ou seja selecione a última linha e isso é um método que para executar isso Isso é uma função e vou pegar tudo isso aqui ó Isso aqui é um valor isso aqui é um valor tá auxiliar.guete last Row vai retornar um valor que é o
número da última linha e aí com esse número aqui que vai ser retornado nessa expressão eu vou somá-lo com mais um então última linha é a linha que vai ser disposto os dados da nova movimentação Então o que é que essa trecho de código faz seleciona a linha que fica logo após a última linha preenchida da Aba auxiliar vou tirar esse que fica aqui para ficar mais curto então seleciona a linha logo após a última linha preenchida da Aba auxiliar na prática deixa eu falar para vocês que tá rolando aqui tá vendo essa aba A
gente percebe que ela tem duas linhas ali a dois Qual é a última linha que tem preenchido alguma coisa ali é um porque a linha 2 não tem nada preenchido tá vazia Ou seja aquele get last Row vai retornar o valor 1 esse get last Brow aqui vai retornar o valor um porque a última linha preenchida é a primeira é a linha 1 E aí quando eu pego esse 1 e são mais um dá dois e aí agora eu vou ficar trabalhando dessa linha dois aqui certo e aí a gente vai preencher tudo aqui na
linha 2 Então tudo isso é para que seja de forma automatizada agora sim vamos começar a preencher então para preencher os campos eu vou usar auxiliar acessar o auxiliar get range eu vou passar para vocês uma outra sentasse a gente tava usando sempre com intervalo usando F5 letra e números mas aqui a gente vai usar e uma outra sintaxe em que você vai colocar na primeira parte a linha vírgula coluna Beleza então se eu quero selecionar linha 2 eu coloco dois se eu quero só assinar a coluna A eu coloco um se eu quero selecionar
a coluna B coloca o dois e assim por diante mas no nosso caso como eu quero sempre selecionar a linha dois que é essa linha em branco que a gente vai preencher ela eu vou colocar eu vou chamar variável última linha porque a variável última linha ela armazena o valor dois que é o que a gente quer então a última linha entre as palavras é a linha 2 agora e a coluna vai ser a um porque a data fica na coluna A então da linha 2 e colo na a que eu vou armazenar o valor
data e aqui eu vou colocar ao invés de get vela e eu vou colocar 7 ou seja atribua este valor aqui dentro eu vou chamar sabia variável data essa variável data como a gente já tinha falado ela armazena o valor do campo data que é justamente que a gente quer atribuir a esse intervalo aqui beleza e pronto quer canceria de código faz atribui o valor da variável data para célula especificada beleza próximo Campo auxiliar outro get Range ali é a mesma vai ser aquela única linha dois então última linha a coluna agora muda como se
trata agora daquela fórmula split a folga split eu vou colocar na célula B2 Então vai ser linha 2 coluna dois aqui eu vou colocar uma fórmula Então agora eu vou não vou colocar sete velho eu vou usar sete fórmula e aqui dentro do parênteses Eu Vou Passar como argumento a fórmula que vai ser no caso uma string como é que vai ser essa fórmula abre aspas explique pode até colocar string e vou colocar até ela com a informação que eu funcionar aqui que vai ser o seguinte eu vou colocar dentro do parênteses da Fórmula split
eu vou colocar a coluna A somado com cadeado na verdade com a linha e qual é a linha vai ser sempre o valor da última linha que a linha que a gente está dispondo os valores nesse caso aqui vai ser A2 né para o estado que tá a planilha agora a medida que for crescendo as movimentações da Aba auxiliar vai ser a Dois a três a quatro assim que assim por diante Então dentro da Fórmula split eu vou ter a concatenado com a linha e ponto e vírgula o delimitador vai ser a barra essa linha
de código faz o seguinte atribui a fórmula glitter beleza próximo campo para a gente poder preencher auxiliar acesso ao auxiliar acessa o intervalo da linha que está sendo preenchida a última linha e a coluna vamos ver qual é agora vai ser o campo tipo né aí vai ser a coluna 5 falando cinco sete velho e aqui dentro eu vou colocar o tipo o dado que está armazenado na variável tipo que a gente declarou aqui em cima tá que que isso faz eu vou copiar esse aqui ó isso aqui atribui o valor da variável tipo para
célula especificada faz a mesma coisa com todas as outras informações última linha vírgula 6.7 velho e agora não vai ser tipo vai ser categoria que isso faz mesma coisa só que com a variável categoria eu vou copiar e colar tudo isso aqui para ficar mais rápido descrição e por fim valor Ah e aqui dentro não esquece de colocar as variáveis corretinhas estão na descrição aqui e aqui valor bom gente então revisando na coluna um vamos ter a data qual não data na coluna dois vamos ter aula split e a fórmula explique aqui na coluna 5
nós vamos ter variável Tipo depois de 6 7 8 nós vamos ter categoria descrição e valor 678 categoria descrição de valor então em tese o que a gente fez aqui foi pegar as informações que a gente armazenou nas variáveis ali declaradas e nós colocamos elas dentro das células que a gente selecionou eu vou salvar o projeto e vamos executar Vamos fazer um pequeno teste então a questão da planilha abra cadastro e vou colocar aqui um exemplo Vou preencher aqui com entrada categoria vou colocar evento e vou colocar show de música aqui vou colocar Nazaré uma
saída né show de música e aqui vou colocar sei lá 100 reais pronto eu tenho as informações preenchidas galera então nesse nessas opções aí que você clica nelas vem transferir script e aqui você vai colocar o nome da função que você quer que seja executada quando esse botão for apertado o caso foi cadastrar que a gente nomeou aquela função né então vou colocar cadastrar e vamos lá vamos testar vou apertar aqui cadastrar e aqui observação Quando vocês forem executar qualquer script do app script quando é pela primeira vez ele sempre pede essa autorização então não
fique com medo pode seguir perto de continuar você vai selecionar sua conta E aí você vai poder descer para cá e apertar em permitir e pronto e algumas outras situações Pode ser que você pode ir descer e apertar nas costas na opção chamada avançado E aí seguir porque você confia do desenvolvedor do script então continuando apertar aqui cadastrar vamos ver o que que vai acontecer no Script agora ó escrito concluído vamos ver auxiliar e tá lá olha o resultado que a gente teve a gente teve uma data do jeito que ele queria e teve a
saída do jeito que ele queria ele vai evento show de música e valor então tudo tá funcionando tranquilo por exceção do que da forma olha o que aconteceu com a fórmula erro de análise de forma quando a gente analisa a fórmula a gente vê eu já consigo perceber aqui o erro que é o fato que a gente usou aspas simples se a gente colocar aspas duplas ó o que vai acontecer vai funcionar tranquilamente então gente vamos consertar isso lá no Script eu vou botar isso aqui do jeito que tá e lá no escritório que eu
vou fazer foi aqui dessa parte aqui ó que que eu vou fazer eu vou trocar onde tem aspas duplas por aspas simples e eu entre aspas simples por aspas duplas pronto troquei Então pronto agora Troquei as aspas duplas pelas aspas simples e as articulas simples pelas aspas duplas agora quando eu salvar o projeto executar novamente Deixa eu voltar aqui para planilha esse aqui tá dando erro né Vamos deixar com erro para a gente comparar então deixar isso aqui com erro tá simples aqui tá com erro aí e agora vamos cadastrar de novo toda apertar e
cadastrar vamos ver Pronto agora sim a gente tem o que a gente quer tanto os valores direitinho quanto a fórmulas tranquilo essa linha aqui eu vou apagar excluir essa linha e pronto vamos continuar então não terminamos ainda a função cadastrar porque a gente se você perceber os Campos ainda estão preenchidos a gente precisa limpar esses campos Então vamos voltar lá para o script e agora vamos vamos criar uma nova função aqui chamada limpar desde essa função limpar eu basicamente vou selecionar os campos lá de valor de tipo data enfim e aí eu basicamente para adiantar
vou pegar esse aqui ó e vou copiar e colar aqui tá coloquei então aqui todos os intervalos de todas as informações certo lá da abacadastro vocês podem ver em cada intervalo o que é que eu vou fazer eu vou usar um método bem simples que se chama Clear Lipe o conteúdo eu fazer a mesma coisa com todos os intervalos de código faz limpa o intervalo especificado e o que que essa função faz essa função limpa os campos da Aba cadastro tá essa outra função aqui cadastrar cadastro a movimentação financeira na aba auxilia Beleza você sabe
que esse botão ele só executa uma função ou seja ou eu seleciono cadastrar ou eu seleciono limpar Então o que é que a gente faz nesse caso aí que a gente vai usar um artifício que é aquilo que a gente já viu escrito é chamar uma função Então dentro da função cadastrar eu vou eu vou chamar a função limpar para que quando a gente finalizar o preenchimento dos Campos da bauxiliar a função cadastrar seja executada E aí Claro os campos sejam limpos lá na abra na abracadastro Vou salvar aqui vou testar tô aqui da planilha
tô com os mesmos dados vou apertar em cadastrar E tá lá olha os dados foram limpos Vamos ver se eles foram cadastrados tá aqui ó a segunda linha também foi cadastrada show de bola então se você consiga Acompanhar até aqui e tá desenvolvendo junto comigo o script Desse nosso projeto parabéns você já aprendeu você já sabe agora como fazer um cadastramento de informações usando o Google planilhas e o app script muito bom mas a gente ainda tem outras funções e outras funcionalidades e automações que a gente vai aprender Então vamos nessa vamos continuar muito bem
voltando aqui para planilha a primeira parte foi concluída a observação eu quero mostrar para vocês é o seguinte aqui na movimentações eu já deixei pronta a planilha para que usando a fórmula sorte ela possa ordenar as informações da Aba auxiliar na forma crescente porque por exemplo se eu cadastrar informação aqui que aconteceu antes desse aqui né antes de 15/06/2022 Então coloca aqui 14/06/2012 que eu preencher esse aqui com outra coisa sei lá Patrocínio e preso de programação da patrocinando por exemplo e o valor r$ 200 então quando eu aperto em Cadastrar Olha o que acontece
vai vir para cá certo e como vocês podem ver mesmo sendo antes do dia 15/06 antes dessa movimentação aqui antes dessa movimentação dessas movimentações aqui ainda assim a movimentação do dia 14/06 ela vem numa linha após as movimentações do 15 de vocês isso não é o que a gente quer por isso que a movimentação por isso que essa movimentações através da Fórmula sorte ela vai a ordenar de forma crescente então aqui você vê que o 14 ficou antes do 15 então o que que a gente vai querer fazer na prática a gente vai querer deixar
essa planilha disponível para o usuário onde a aba auxiliar esteja oculta certo para que o usuário esteja de experiência não fica ali lidando com auxiliar sendo cabe auxiliar tá desordenado então a movimentações é só realmente para ficar mais visual e na verdade mais funcional mas eu vou voltar aqui para auxiliar porque eu tenho algumas coisas que a gente precisa corrigir a primeira coisa é eu não sei se vocês perceberam mas aqui a gente teve duas movimentações de saída o valor aqui tá Positivo tá vendo tá um sem sem 200 o ideal é que ele ficasse
negativo pra gente fazer isso de forma automatizado o que é que eu vou fazer eu vou botar aqui no Script e esse preenchimento aqui ó na variável valor eu vou colocar dentro de uma condição Olha o que eu vou fazer vou abrir aqui um if e vou colocar a seguinte condição se a variável tipo né para a gente ver se a entrada ou saída foi igual a entrada né se o tipo for for entrada eu quero que Execute o seguinte eu quero que pegue esse essa linha de código e Execute ela né seja atribuído realmente
para aquelas células especificada o valor da variável valor agora se porventura for saída Ou seja a outra situação Então élce eu quero que Execute parecido com a mesma coisa só que na verdade coloque o valor negativo então por isso aquele menos ali antes da variável valor então atribui o valor negativo da Vara do valor para célula especificada tranquilo apenas vão verificação para saber se o valor tem que ser printado como positivo ou negativo então vamos fazer um teste vou salvar o projeto aqui da planilha eu vou colocar 13 do 6 de 2022 vou colocar saída
para experimentar categoria lanche descrição sanduíche e o valor r$ 20 o cadastrar e agora vamos ver tá aqui ó menos 20 a gente pode até mexer na formatação condicional dessa planilha dessa coluna e colocar aqui em formatação condicional para na coluna H Caso seja maior do que zero que fique Verde agora caso seja da coluna H é menor que zero que fique na cor vermelha vou ver se funciona Pronto agora os valores positivos estão verdes e os negativos estão vermelhos Então galera com isso a gente corrigiu essa pequena Ixi da Aba auxiliar e dar a
movimentação agora chegando aqui na movimentação tem uma coisa que a gente precisa também adicionar aqui que é nessa e a gente colocar uma fórmula para calcular o saldo das movimentações beleza a coluna auxiliar terminamos certo eu vou ocultar ela e a partir de agora a gente vai trabalhar mais com a movimentação Então vou voltar lá para o script Vamos trabalhar nessa parte aqui de saldo bom eu vou abrir uma outra condição aqui para verificar o seguinte se a última linha foi igual a dois ou seja por um acaso for a primeira movimentação já que ali
é um são os títulos Então a partir da linha dois e a gente vai ter as movimentações Então se por acaso o cara tá a pessoa está preenchendo a primeira movimentação Ou seja a linha A2 vai ser executado aquele aquilo que está dentro desse hífen certo mas pode não ter percebido mas aqui em cima gente a gente só a gente só declarou duas Abas a cadastro e auxiliar para a gente poder mexer na aba movimentações a gente vai precisar vai precisar acessar essa aba também então eu vou declarar movimentações planilha.gedshit by name entre parênteses chamada
movimentações que é o nome da Aba e o que é que você faz essa linha de código acessa a aba movimentações certo Agora sim eu posso trabalhar na boa vedações voltando aqui para a condição eu vou colocar movimentações ponto get Rage que eu vou colocar última linha porque coincidentemente a última linha da Aba auxiliar preenchida é a última linha da movimentações preenchidas A diferença é que um está ordenada e outra não está beleza mas a última linha vai ser sempre a mesma então vamos tentar responder e a coluna vai ser da informação do saldo vamos
ver qual é aí ou seja é a 9 então falando na nove nesse intervalo especificado dessa célula eu vou ser eu vou atribuir a fórmula para calcular o saldo Caso seja da primeira linha é muito simples sete fórmula e aqui vou colocar igual a vamos lá vamos voltar aqui para a planilha O que é que eu preciso que fique aqui nessa célula II na célula II eu preciso que venha o valor da célula H2 certo a primeira movimentação o saldo vai ser o próprio valor dela então vai ser o valor da célula H2 Então vou
colocar aqui H2 agora caso não seja a segunda linha a última linha não seja a dois eu vou ter uma uma coisa um pouco diferente movimentações ponto get Range mesma coisa última linha color 9 ou seja Cola aí e sete formas aí aqui vem uma forma um pouquinho mais complicada eu vou colocar uma soma Olha que que eu vou fazer eu vou somar o valor desse saldo com a movimentação que foi feita então por exemplo se aqui tivesse um saldo de menos 20 certo após a primeira movimentação o segundo saldo após a segunda movimentação seria
menos 20 mais de 200 então ficaria 180 de saldo então sempre vou ter que estar somando a isso a célula superior com as célula da esquerda da célula que eu estou como é que eu faço isso bom a célula superior sempre vai ficar na coluna aí então vou colocar e mais com encadernado agora com a última linha menos um tudo isso entre parênteses Ou seja a linha anterior mas agora esse mais é que é da fórmula e não de colocar até nação e última linha menos um mais H porque H porque H é a coluna
que tá ao lado da linha da linha aí então eu já selecionei essa célula que é o i última linha -1 Agora passo nessa célula eu vou botar o h última linha então H com k com última linha e com cateterno assim com uma string para que tudo seja uma string Beleza então essa é a fórmula e pronto galera feito isso nós temos a aba auxiliar e movimentações prontinhas não temos mais nada a mexer vamos lá tô salvando aqui o projeto vamos ver como ficou então eu vou voltar aqui para aba cadastro eu vou colocar
12/06/2022 vou colocar aqui uma saída vou colocar lanche e vou colocar um suco r$ 5 quando eu cadastrar o que vai acontecer que movimentações vai ter r$ 100 porque r$ 100 gente porque primeiro como você pode ver ela vai essa fórmula ela vai calcular os 5 mais o h6 o I5 é essa aqui não tem nada o h6 é essa daqui que é o 100 então 0 + 100 100 ah mas por que que vocês estão tão sem nada porque essa movimentações foram cadastradas antes dessas nossas novas adições lá no Script Mas a partir de
agora nós vamos ter todo o padronizado então eu posso aqui e coloca manualmente já que a gente tá começando aqui o nosso escrito e era natural que isso acontecesse esse aqui vai ser igual a esse de cima mas esse do lado e agora sim eu posso puxar tudo até aqui pronto após a primeira movimentação nós temos um sábado de -5 depois menos 25 depois 175 275 por fim 365 Então tá tudo funcionando direitinho com isso nossa saiba cadastro Tá ok Nossa aba auxiliar Tá OK Tá desordenada e por isso a gente vai ocultar e a
nossa aba movimentações da ordenada e apresentando o saldo então fechamos essas três primeiras Abas e agora falta só a gente correr para o nosso relatório e aprender como enviá-lo por e-mail Então agora falta apenas gerar o relatório e enviado por e-mail na parte de geração do relatório a gente vai fazer apenas algumas adições para tornar a geração completa adicionando o saldo ao relatório e pronto a gente pode partir para o envio do e-mail usando aquela classe que eu falei lá atrás chamada meio app vamos nessa bom então aqui estou eu na aba gerador de relatórios
e aqui gente se vocês colocarem os filtros por exemplo se eu colocar aqui 2022 e apertar e gera e apertar em gerar não vai acontecer nada porque porque a gente primeiro precisa indicar o que é que esse botão gerar vai fazer a mesma coisa com o botão enviar se eu colocar aqui a mensagem o e-mail não vai acontecer nada a gente vai preparar isso aqui ainda mas mas como a gente já tem a função Cury aqui função já está funcionando parcialmente essa geração do relatório Então sempre que eu seleciono aqui 2022 mês e por exemplo
lanche quando eu venho aqui na relatório Olha o que que acontece ele me filtra justamente é o lanche o lanche as movimentações de lanche da categoria lanche eu poderia fazer o filtro para outros meses né para outros anos e enfim a função Cury tá funcionando se eu colocasse apenas lancha aqui viria para cá todos os lanches de todos os anos de todos os meses se eu e aí se eu colocar por exemplo Patrocínio vamos ver o que acontece olha aqui veio apenas a movimentação da categoria Patrocínio então o relatório está funcionando porém parcialmente porque parcialmente
Porque como naba movimentação também está faltando a aba de saldo e isso a gente vai fazer ficou escrito tá ao apertar o botão gerar vai ser gerado esse saldo com base em que com base nos dados que estão filtrados aqui na aba relatório o saldo só pode ser gerado quando as informações quando essa outra parte aqui do relatório for gerada então isso aqui essa essa coluna depende dessas outras por isso que a gente precisa colocar desse botão gerar Tranquilo então vamos lá para o nosso script agora a gente vai criar uma função chamada gerar certo
deixa eu pular algumas linhas aqui para ficar mais fácil de visualizar e aqui na função geral a gente vai começar a setar os valores e as fórmulas da coluna saldo bom o primeiro passo é o seguinte aqui na planilha essa essa coluna de saldo primeira coisa que a gente precisa fazer esse relatório ele vai ser gerado várias vezes então primeira coisa que precisa fazer é sempre que um novo relatório foi gerado com o botão geral primeira coisa é apague todas as informações da coluna saldo para que a gente possa ir lá e adicionar os Novos
Valores beleza Então vamos ver como é que a gente vai limpar esses dados é muito simples você vai acessar a aba relatórios E aí para isso a gente precisa armazená-la acessar através de uma variável vou colocar variável relatório planilha ponto Gets relatório e aqui dentro E aqui nessa linha que que ela vai fazer ela vai acessar a aba relatório Beleza então agora que eu tenho que eu posso acessar essa aba relatório Eu vou acessar Agora usando o relatório e vou acessar o get Range qual vai ser o Range galera vai ser F vai ser a
coluna toda então para poder selecionar toda a coluna F com exceção da célula saldo eu vou usar a seguinte expressão F2 que a partir da segunda linha F Beleza é assim que você seleciona toda uma coluna então selecionar a coluna eu vou limpar o conteúdo usando o método Clear code beleza uma vez que eu limpei ele agora sim eu posso começar a preencher a coluna e a primeira informação que eu preciso preencher é a primeira célula que é mais simples Então vou pegar a primeira célula que vai ser o que F2 E você tá a
seguinte fórmula é dois é dois porque é dois porque sempre esse saldo aqui inicial vai ser a primeira o valor da primeira movimentação então se eu colocar aqui é dois que é o que a gente fez com script sempre vai vir o valor da primeira movimentação Beleza então a gente limpou a coluna f e adicionou o primeiro valor dela que é igual a o valor da célula é 2 A partir de agora a gente vai colocar uma fórmula para Que ela possa preencher as células das outras linhas beleza para isso a gente vai usar um
foco uma estrutura de repetição porque porque essa aba relatória aqui ela pode ser que tenha sei lá 200 movimentações certo um relatório bem extenso então 200 movimentações a gente precisa preencher todas as células da Aba saldo certo e aí para a gente poder fazer isso a gente vai ter que usar o nosso foco para que ele possa ir pulando de linha e preenchendo sempre a coluna F E aí a gente vai usar o fogo então eu vou declarar um contador aqui Começando na linha 3 esse contador ele vai ser referente a nossa linha por isso
que eu já começo atribuindo ele o valor três então lembre-se o i é como se ele fosse o número da nossa linha onde a gente quer colocar a fórmula como a gente vai começar pela linha 3 tendo em vista que ele é dois a gente já preencheu aqui então já atribuo para o i o valor três laço four vai começar na linha 3 e quando é qual vai ser o Freio desse foco que que vai parar esse fogo esse fole vai vai rodar enquanto ir for menor ou igual a última linha na verdade última linha
é referente às outras Abas auxiliar e movimentações aqui eu vou usar aquela expressão que a gente usa para a última linha que é nesse caso como se trata da Aba relatório Eu vou acessar a última linha dessa aba então relatório ponto get last Row e como é o método eu coloco parênteses Então quer que essa expressão quer dizer que o Freio desse pó o que vai fazer esse forte parar é que é quando o i passar a ser maior do que a última linha dava relatório Beleza o foco vai rodar enquanto isso for menor ou
igual a última linha da Aba relatório o Iva crescer vai ser incrementado em unidade sempre que ele finalizar o foco beleza dentro do foco é que vai ser executado basicamente vai printar vai colocar lá na célula a fórmula então eu vou acessar a barra relatório get Range e aqui a gente vai usar o i aqui ele vai usar o contador da linha e coluna f f é a coluna 6 então eu vou acertar o valor sete fórmula na verdade e aqui dentro eu vou colocar a fórmula para calcular o saldo certo para calcular o sal
então quando for colocado aqui mais uma movimentação eu quero que essa célula aqui calcule Quanto é essa mais essa aquilo que a gente já fez então aqui é a forma que vai ser adicionado é a seguinte Abrir aspas coloca igual [Música] se quiser né E pode colocar aqui f com catenado com cardenado com a linha anterior então i-1 certo e você vai pegar a célula de cima E aí eu vou colocar até daí isso com o que com mais da fórmula ué que a coluna anterior as concatenado com i que é a última linha então
resumido essa fórmula vai ser o seguinte f linha anterior a última mas é última linha certo E com isso a gente finaliza essa fórmula do laço Foco Vou salvar o projeto e vamos testar então voltando aqui para planilha eu vou gerar um novo relatório dessa vez eu vou colocar evento vamos ver Olha o que tá aparecendo aqui na nova relatório os eventos que a gente que foram cadastrados aqui certo foram duas saídas porém está vendo que o saldo tá estranho apenas aqui esse aqui tá em branco porém se eu apertar em gerar agora quando eu
transferir o script vou colocar o script que eu quero executar que é a função geral quando apertar aqui do botão gerar Olha agora a gente tem a coluna saldo do jeitinho que deve funcionar show vou fazer um novo teste aqui se eu colocar aqui por exemplo se eu tirar a categoria E colocar o ano 2022 vou ter várias movimentações todas até agora né E olha como tá o relatório antes de apertar em gerar tá aqui todos os louvores porém o sal você pode ver que tá estranho tem algumas células em branco não tá funcionando como
deve ser como deve ser quando a gente aperta em gerar o laço for e tudo que a gente que a gente cuidou vai agora ó fazer o saldo funcionar como deve funcionar Beleza então para relatório mas a parte de preparar o relatório para a gente poder enviar perfeito conseguimos o que a gente queria era basicamente isso que eu queria familiarizar vocês a lidar com fórmulas a lidar com essa manipulação entre Abas e da parte de planilhas galera é isso chega de spread shit up Chega dessa classe e agora a gente vai aprender uma nova Classe
A gente vai usar outros métodos que é a classe bem ou app para que a gente possa enviar e já adiantando vai ser muito curto é bem direto ao ponto não tem Muita enrolação é bem simples então voltando aqui para o script eu vou só comentar essa função gerar e vou dizer que ela que ela gera o saldo do relatório Pronto agora eu posso salvar e Agora sim a gente pode se concentrar e enviar um e-mail enviar o nosso PDF para isso eu vou criar uma nova função que ela vai enviar o e-mail o relatório
por e-mail beleza para a gente poder enviar o e-mail a gente vai usar a classe meio app e dentro dela um único método chamado Sandy e mail e dentro desse método como argumento a gente vai passar um objeto e esse objeto ele precisa de algumas propriedades como por exemplo destinatário nome anexos entre outras coisas então o que a gente precisa colocar dentro desse método como argumento é um objeto com as informações do e-mail Tranquilo então eu vou deixar isso aqui por enquanto comentado já já que volta para ela para esse meio app e aqui eu
vou declarar um objeto para gente poder colocar essas propriedades Eu Vou Chamar esse objeto de e-mail e-mail certo e aqui vou colocar o objeto e já adiantando dentro desse desse parentes aqui do meio app eu vou colocar como objeto ali Justamente esse que a gente vai criar aqui e vai atribuir algumas propriedades para ele e a primeira propriedade que a gente vai colocar nesse objeto é para quem a gente vai enviar o nosso e-mail o nosso destinatário então para isso eu vou colocar o nome dessa propriedade como tu e o que é que ela vai
armazenar ela vai armazenar o nosso destinatário para isso eu vou criar aqui uma variável chamada destinatário que vai que vai conter o nosso o e-mail destinatário destinario que vai receber sabe o que galera vai receber o e-mail que tá lá naquela aba gerador de relatório essa aqui ó esse e-mail aqui esse campo o conteúdo desse Campo Então qual o intervalo K4 K5 vamos lá para o script eu vou precisar acessar aba gerador como não declarei ainda eu vou lá para o topo do código e vou declarar aqui mais uma aba chamada gerador e dentro dessa
aba vou colocar planilha.quete o nome da nossa aba gerador de relatórios acessa a aba gerador e relatórios beleza voltando lá para baixo aqui destinatário eu vou colocar gerador ou seja ACC aba gerador de relatórios e aqui eu vou querer o conteúdo daquela daquela célula né então Gate Range Qual é a célula Você lembra do intervalo que eu acabei de copiar é o K4 K5 e eu vou querer o valor que está contido nessa célula então para isso eu vou usar o método get Então é isso declaramos a variável destinatário que contém o conteúdo dessa célula
que na prática vai ser o e-mail Agora sim essa propriedade eu vou colocar o armazenar destinatário a segunda propriedade vai ser a seguinte subject vai ser o assunto do e-mail aqui você pode colocar um string que vai ser padrão que vai ser o que relatório relatório financeiro isso aqui não vai mudar porque a gente vai sempre mandar relatórios financeiros vírgula para a gente adicionar mais uma propriedade que vai ser a terceira propriedade que é Body essa propriedade Body a gente vai adicionar o corpo do nosso e-mail a mensagem que a gente vai enviar e para
a gente poder deixar isso flexível e não algo fixo a gente vai usar o conteúdo da célula mensagem para que sempre o usuário caso queira mudar a mensagem ele possa vir aqui e colocar o que ele quiser beleza Quando eu fizer o teste vocês vão ver que vai ficar bem bacana Então qual o intervalo dessa célula é esse e 4 e 6 e aqui eu vou precisar desse conteúdo desse intervalo para isso eu vou declarar uma nova variável chamada mensagem e aqui eu vou colocar gerador ponto get Range esse que a gente acabou de copiar
e pegar o valor que está dentro dele Agora sim eu tenho uma variável mensagem armazenando o valor do campo mensagem que é esse aqui Pronto agora a propriedade Bari vai armazenar o que está na variável mensagem e falta duas propriedades agora para a gente finalizar a quarta é a seguinte Daime ou seja o nome de quem está enviando o relatório nesse caso você pode colocar por exemplo planilha de controle financeiro certo ou caso a planilha seja individual você pode colocar o seu próprio nome né como por exemplo no meu caso Túlio Damasceno beleza e por
fim para a gente finalizar esse objeto eu vou adicionar a última propriedade que é essa aqui é patchments e é dela que a gente vai é colocar o nosso arquivo a gente vai colocar os anexos aqui beleza então vamos ver como é que a gente transforma a planta dele agora em PDF é bem simples A gente vai abrir colchetes e dentro dos colchetes vamos especificar Qual é a planilha que o nosso caso é a própria planilha é a variável planilha e vamos usar o método Gets e outras palavras selecione como E aí dentro desse método
como argumento a gente vai passar esse esse argumento aqui mini type outro PDF sendo que esse PDF aqui ele é em maiúsculo Beleza então é como se tivesse selecionando a planilha no formato PDF beleza e eu vou agora vou atribuir um nome para esse arquivo para esse anexo Então vou colocar 7 e aqui Vou passar como argumento uma string com o nome relatório financeiro ponto PDF Esse vai ser o nome do meu arquivo e pronto o nosso objeto está concluído se a gente testar vai funcionar vai enviar por e-mail e vai rodar direitinho mas o
a última coisa para a gente encerrar o nosso minicurso e o nosso relatório ser enviado completinho e de forma adequada a única coisa que a gente precisa fazer é caso a gente envie do jeito que está vai ser enviado um arquivo em PDF de toda a planilha e não é isso que a gente quer a gente quer que envia apenas a aba relatório Então antes de enviar o e-mail antes disso aqui ser executados desse essa linha de código ser executada eu vou querer ocultar as outras Abas e deixar apenas abra relatório possível de ser visualizada
e todas as outras ocultas com isso quando o arquivo foi enviado vai ser enviado apenas a aba que está disponível para ser visualizada no caso relatório depois de enviar um e-mail Aí sim a gente tira aquelas Abas que a gente ocultou e retorna ela para o estado natural que é elas poderem ser visualizadas vamos ver como é que a gente faz vamos lá então abacadastro eu vou precisar esconder ela então vou usar Ryder e como isso é um método coloca o parênteses a mesma coisa com a aba movimentações e a mesma coisa com a aba
gerador Raid com isso o que é que vai acontecer aqui temos a planilha então o script vai ocultar abra cadastro vai ocultar abra movimentações ocultava gerador e vai enviar apenas a aba relatório que é o que a gente quer a gente enviar um relatório e não a planilha toda E aí após ser enviado a gente vai agora colocar lá no código para que ele eu chamo de desocultar então ele desoculte abra cadastro não desoculte a abre auxiliar Errei aqui desoculte abra movimentações e a aba gerador de relatórios Esse vai ser o procedimento do nosso script
então voltando para lá após ser enviado o e-mail que é esse esse método aqui eu vou novamente colocar cadastro ou seja mostre a planilha mostra aba na verdade movimentações show cheat mesma coisa mostra a movimentações e por fim a água gerador mostre aba gerador eu não sei se vocês perceberam mas a gente colocou isso dentro de nenhuma função então a gente precisa colocar isso dentro da função vou colocar isso aqui como função enviar aí aqui eu vou colocar tudo isso que a gente acabou de escrever pagar essas linhas aqui e aqui dentro eu vou colocar
o que a gente acabou de escrever agora vou só corrigir a hidratação e pronto a nossa função enviar vai declarar algumas variáveis que vão ser usadas dentro desse objeto que por sinal também está armazenado dentro de uma variável essa essa variável vai ser usada como argumento do método enviar e-mail certo mas antes de enviar um e-mail a gente vai ocultar algumas algumas Abas e após enviar um e-mail a gente vai tornar essas Abas disponíveis para visualizar novamente agora vou salvar o projeto agora vamos testar então voltando aqui para Ilha esse botão enviar a gente precisa
atribuir para ele a função né então Enviar ok Deixa eu ver se o botão geral tá ok gerar também tá ok então Vamos experimentar eu vou selecionar a categoria lanche na verdade é pode ser categoria evento na verdade vou gerar novamente pediu autorização Vou atualizar beleza permitir Agora sim vamos apertar em geral novamente e vamos ver o relatório final tá aqui ó as movimentações de eventos né saldo de 200 reais e agora eu quero enviar isso aqui por e-mail como é que eu faço eu volto aqui na aba gerador de relatórios coloca a mensagem Este
é um relatório financeiro referente aos as movimentações para compra de lanches para na verdade é lanches então para participação em eventos deixa só corrigir essa formatação aqui apertando aqui né ajuste do texto ajustar pronto então a mensagem que vou mandar por e-mail é este é um relatório financeiro referente as movimentações realizadas para a participação em eventos e para que que eu vou enviar esse e-mail eu vou enviar para mim mesmo vou adicionar aqui o meu e-mail túlio.damasceno .093 @br e Pronto coloquei aqui a mensagem e coloquei o e-mail do destinatário e agora sim vou apertar
em enviar uma vez que eu já atribui a função enviar para esse botão né quando apertar enviar vai ser rodado script eu não sei se vocês perceberam porque foi bem rápido mas a planilha ela ocultou as colunas me direcionou para aba relatório porque foi a que sobrou por isso que eu tô nela agora e logo em seguida enviou o e-mail e finalizou desocultando as colunas que a gente determinou lá do escrito e agora eu vou abrir meu e-mail vamos ver se deu certo então vindo aqui no meu e-mail Olha o que apareceu um e-mail enviado
por mim mesmo por isso que ali tá aparecendo eu com o assunto relatório financeiro e quando a gente abre Olha o que aparece Este é um relatório financeiro referente às movimentações realizadas para participação em eventos e aqui o que a gente tanto queria que é o anexo com o nosso relatório do formato PDF E aí quando dá uma olhadinha olha aqui as movimentações referentes a categoria evento que o nosso relatório lá da planilha conseguiu filtrar bom galera o nosso mini curso de app script chegou ao fim Espero que você tenha gostado Espero que você tenha
aprendido e assim tem adicionado uma nova ferramenta ao seu Arsenal para se tornar um melhor solucionador de problemas se você teve alguma dúvida no desenvolvimento do projeto deixa aqui nos comentários que eu vou estar ajudando Que eu vou tá tirando essas dúvidas e não deixe de conferir o link para o repositório do github onde você vai ter acesso ao código completo para te ajudar aí no desenvolvimento do projeto que a gente fez hoje eu fico por aqui e a gente se vê na próxima