fala impressionador sejam muito bem-vindos a mais uma aula de VBA aqui no canal eu sou o Diego e na aula de hoje eu vou te mostrar como é que você pode fazer isso daqui ó cliquei dá uma olhada Eu tenho um código rodando aqui do lado e que que ele tá fazendo ele tá excluindo várias e várias linhas dessa tabela que é um código só pra gente ter aqui é um exemplo pra gente mostrar como está funcionando a nossa barra de progresso que eu tenho aqui uma caixinha dizendo em andamento percentual aqui de andamento e
a Barrinha que vai de ponta a ponta e quando ele terminar aqui de rodar esse código ele finaliza ali e acaba esse código pra gente se você curtiu isso daí e quer aprender é só você assistir essa aula até o final e antes de fazer isso também lembra like no vídeo se inscreve no canal clica no sininho que ajuda bastante a gente agora sim bora rodar [Música] Vinheiro antes da gente começar o conteúdo já faz o seguinte baixa essa planilha que tá aqui embaixo só você clicar em ver mais para abrir a descrição vai ter
a planilha que eu tô usando e também um minic curso de fba com conteúdo muito maneiro Para você aprender gratuito amente e lembra também de me deixar aqui nos comentários uma sugestão de tema para eu gravar de VBA para vocês sempre tô olhando os temas você estão mandando nas sugestões e sempre que é um tema bacana que dá para fazer a gente grava essa aulinha aí para vocês agora sim chega de blá blá blá e bora começar esse conteúdo aqui com essa parte aqui de barra de progresso como é que a gente pode fazer para
ir monitorando os nossos códigos beleza Vamos abrir o nosso ambiente fba já voltei aqui com as células que eu deletei pra gente poder deletar de novo Alt f11 e vamos ver o que a gente fez aqui primeiro de tudo a nossa barra de Progresso é um formulário dentro do VBA então eu ten um formulário simplesinho com um texto um quadro e pronto só isso daqui já me possibilita criar aquele eh aquela barra de progresso que vocês viram e depois eu tenho um códigozinho aqui que executa um código e aqui foi um código qualquer Mas você
pode colocar essa barra de Progresso em qualquer código que você for executar ali dentro do VBA que a medida que ele for fazendo alguma coisa ele vai preenchendo ali eh o a barra de progresso para ir chegando ali no final beleza Qual que é a ideia aqui do formulário Vamos criar um do zero inserir userform ele vai criar aqui o nosso formulário primeira coisa muda o nome do seu formulário para aparecer aqui um nome intuitivo aqui eu já chamei de barra Progresso vou chamar de barra de progresso não coloca espaço nem caracter especial porque isso
depois dificulta eh quando você for escrever os seus códigos e pode dar erro também beleza colocamos aqui vamos criar agora o tamanhozinho do nosso userform isso daqui não precisa ficar certo de primeira mas coloca mais ou menos assim que eu acho que já vai funcionar E aí lembra Eu tenho dois elementos primeiro elemento Eu tenho um texto segundo elemento Eu tenho um quadro que nada mais você vai funcionar como o nosso retangulo Zinho que vai preenchendo a barra de progresso como é que a gente faz isso eu venho aqui em caixa de ferramentas que se
ela não tiver aparecendo para você ó clica no formulário se mesmo assim não tiver aparecendo vem em exibir e a gente tem aqui ó caixa de ferramentas beleza na caixa de ferramentas clica aqui nesse segundo que é o rótulo e aí você só vai ó clicar e arrastar de ponta a ponta mesmo para ele ocupar tudo que tá lá escrito o nosso é o nosso textinho que que eu quero deixar nesse texto ali de padrão 0% completo vou mexer aonde aqui onde eu tenho caption caption é o que está aparecendo aqui é o que tá
aparecendo para mim tanto que se você for ver aqui tá aparecendo userform 1 sendo que a gente mudou PR barra de progresso barra de progresso é o nome do objeto aqui mudou para Barra de progresso caption é o que está aparecendo para mim se eu quiser mudando aqui ó é se eu quiser mudar aqui é código em andamento dá uma olhada que ele já vai mudando ali ó três pontinhos beleza Label que que eu quero colocar aqui vou colocar 0% completo ou percentual de andamento tal o que você achar melhor E aí quando eu clico
fora já tá lá 0% completo show de bola que que eu tenho que fazer com isso daqui ten que dar uma formatada nele porque ele não tá muito legal que que eu vou fazer então vou clicar aqui na parte de fonte vou clicar nesses três pontinhos e eu consigo mexer no tamanho dessa fonte então Ó vou botar 12 que ele vai ficar grandinho vou dar um ok F lá 0% completo Beleza vou mexer agora na formatação porque eu quero que ele fique alinhado ao centro e não aqui à esquerda então eu vou buscar aqui ó
onde eu tenho text align que é o alinhamento de texto clico aqui Center pronto a parte ali de texto eu já matei PR praticamente que que falta para mim a nossa Barrinha pra gente ir preenchendo depois vou clicar aqui nela onde é que eu tenho a minha Barrinha é essa partezinha daqui ó não multipágina não que é o quadro que tá aqui ó lá no finalzinho aqui na minha primeira linha só que vai depender do tamanho D sua caixa de ferramentas ela pode estar na segunda linha também então clica aqui em quadro vem aqui ó
de ponta a ponta também eu só vou deixar um pouquinho menos do que o comprimento total e tá lá ele já criou o nosso quadro Zinho só que ele vem com esse nome de frame que ele chama ali de quadro eu não quero que tenha nada ali no titulo Zinho a gente poderia colocar o texto ali do percentual de andamento a gente poderia colocar aqui direto mas eu optei por colocar aqui se você quiser colocar aqui no frame é só você mexer aqui ó caption ao invés de deixar criar um outro texto você pode colocar
aqui ó 0% completo vou mostrar os dois jeitos para vocês vocês vem qual que vocês preferem Beleza 0% completo Então beleza como é que eu para não ter nada e apagar isso daqui eu tenho que mexer no caption que foi que a gente mexeu aqui mexeu aqui e vamos mexer aqui também caption eu não quero que apareça nada ele some aquela informação ali e aí vamos lá no formulário Cadê o formulário como um todo cliquei no formulário Beleza a gente chamou ele de barra de progresso o meu texto tá lá ó Label um eu tenho
que mudar ele para um texto um nome intuitivo que vai ser ó texto andamento beleza não aparece nada para mim só que o nome desse objeto é texto andamento vai ser importante depois pra gente ficar atualizando esse percentual 1 2 3 4 5% e por aí vai esse quadro também faz sentido eu mudar o nome aí eu vou colocar aqui ó barra e botar quadro Progresso que aí eu sei que é o quadro e não o formulário em si Beleza agora que que eu preciso fazer eu preciso deixar exatamente do tamanho que eu quero isso
daqui ó então eu vou colocar ó tirar um pouquinho do tamanho do formulário vou clicar nele ó reduzir aqui um pouquinho beleza e eu vou mexer no fundo dele o formulário com esse fundo cinza eu não gostei vou mexer aqui ó back color clicar paleta e eu escolho a cor que eu quiser ó escolhi aqui essa cor show de bola vou mexer no fundo da fonte ó back color vou colocar um fundo preto também Opa coloquei branco preto Beleza agora tem que mexer na cor da fonte porque eu mexi no fundo e não mexi na
cor da fonte tá aqui ó color vou colocar branco Ó Branco beleza que mais que eu tenho que mexer acho que ficou muito Coladinho lá em cima então Ó vou abaixar aqui um pouquinho vou abaixar esse daqui um para baixo e esse aqui ó um para baixo também isso daí a gente vai fazendo para ajustar e a última coisa que eu vou mudar eu vou deixar essa barra Verde então vou clicar aqui ó back color paleta E aí você escolhe um verde que você quiser tem esse Verde aqui bem clarinho tem esse Verde um pouquinho
mais escuro que eu acho que combina mais fica mais legal então Ó o esqueleto dele tá Prontinho que que a gente precisa fazer agora eu preciso ver uma única coisa primeiro antes de ver essa única coisa que eu falei a gente tem que lembrar dos nomes que a gente colocou texto andamento e quadro Progresso texto é isso daqui quadro é esse daqui e agora sim eu tenho que ver o tamanho desse meu e dessa minha barra de progresso daqui até aqui qual que é o tamanho dela por eu vou começar ela em zero e depois
eu vou até esse tamanho Total eu vou configurar isso através do meu código como é que eu vou fazer isso ó clica nela e você vai ver aqui embaixo ó with que é o tamanho a largura dela comprimento tá aqui ó 16 show de bola 216 Guarda esse valor que a gente vai usar ele nas nossas continhas Agora sim a gente criou o formulário ó que tá aqui esse daqui era o que eu tinha criado esse aqui é o que eu criei agora com vocês módulo excluir linhas que que eu tenho aqui o meu codigo
Zinho que faz o quê exclui linhas vamos ver qual que é a lógica pra gente colocar o nosso formulário em Ação primeiro de tudo eu tô declarando algumas variáveis agora vamos voltar aqui pro nosso é pra nossa planilha pra gente entendeu o que a gente vai fazer variável I que vai servir como meu contador para eu ir iterando linha por linha p p pá até o final e aqui eu vou colocar última linha também que eu quero saber onde eu começo e até onde eu vou última linha que mais conte que vai ser o meu
contador que vai servir Para quê Para Dizer em qual momento do meu código eu tô Qual que é o percentual de andamento que eu concluí até o momento show de bola vou usar essas três variades última linha como é que eu encontro a última linha eu vou lá na última célula de Excel então Ó a 1.8.5 76 e dou um cont control set para cima cont control set para cima e Pronto cheguei na célula a501 eu quero a linha que é 501 então ó última célula cont control set para cima ponto Row descobri a linha
que é a linha que 501 Então vou colocar ó 501 dentro dessa variável aí o que que eu faço antes de começar a minha estrutura de repetição que aqui vai ser o grosso do seu código se você for colocar dentro de um outro código você vai ter que Inserir a sua barra de progresso dessa forma antes ali da parte onde você vai ficar iterando ficar fazendo várias coisas onde ele vai passar mais tempo você abre a barra de progresso e depois disso você fecha a barra de progresso e eu já vou te dizer o que
que é Abrir fechar e progredir esses três são funções que eu criei aqui embaixo para eu não precisar ficar escrevendo isso dentro do meu código então eu criei uma função que abre a minha barra de progresso uma função que fecha minha barra de progresso e uma função que vai progredindo ela aos poucos dependendo do percentual de andamento que eu estou beleza então vamos lá Abrir barra de progresso que que essa função faz uma função é basicamente uma sub uma macro que a gente tá rodando só que ela é uma função tipo um soma C igual
soma C é uma função que a gente tem ali então se eu quisesse pegar Abrir barra de progresso ó Abrir barra de progresso eu tenho essa função aqui dentro do meu Excel também é ele realmente cria uma função para você quando você tem uma macro essa macro você não consegue executá-la dessa forma então ó excluir linhas não existe essa macro aqui mas a função que eu criei existe beleza que que essa minha função Abrir barra de progresso faz função nome abre e fecha o que que eu tenho dentro dela and function is ura muito parecida
com a minha macro mesmo ela só ao invés de ser uma macro ela é uma função barra Progresso que é o nome do meu formulário Ou a gente pode fazer com formulário novo vamos fazer Ó Barra D cont control espaço de progresso que ele preenche aqui o nome ponto qual que era o nome do nosso quadro que eu quero zerar ele assim que a gente abrir o nosso formulário quadro Progresso ponto with iG 0 que que eu tô fazendo nessa instrução tô pegando o comprimento ali do meu quadro que era verdinho e tô zerando ele
porque assim que eu abro a barra de progresso ele tem que estar Zerado então eu zero o comprimento dele e a segunda coisa que eu faço é exibir o meu formulário então eu faço o seguinte ó barra de progresso contol espaço ponto show só que se eu fizer só isso daqui ele vai mostrar o meu formulário só o que que vai acontecer ele vai travar a execução de todo o resto se você já usou um formulário dentro do VBA você sabe que assim que você abre um formulário ó vou chegar aqui nele vou dar um
play ó tá vendo quando eu clico fora ele trava absolutamente tudo o meu formulário meio que domina toda aquela tela então se eu abrir simplesmente dessa forma aqui ó pon show ele faz aquilo só que não é o que eu quero eu quero que o formulário só exiba mas que o resto continue funcionando normalmente então eu tenho que colocar esse VB modeless que ele abre nesse modo que me permite fazer outras coisas então repetindo o que que a gente faz nessa função zera o progresso lá da minha barra o progresso não o tamanho dela que
representa o progresso e mostra o meu formulário perfeito então ó antes de eu executar o grosso do meu código eu abro a barra de progresso Agora sim eu vou fazer o quê o meu contador começa em um que a gente vai usar para definir o meu progresso para a minha linha indo do valor 2 2 dessa linha daqui até última linha que a gente viu que era 501 eu vou executar alguma coisa que é o quê e deletar cada uma das Linhas então o que que eu tô fazendo aqui ó vamos ignorar isso daqui por
enquanto eu poderia até comentar ele daqui a pouco a gente volta nele então ó asper simples ele faz um comentário viu que ele ficou verdinho o meu código ignoraria isso daqui que que eu tô fazendo assim que eu entro eu vou deletar o quê a minha linha então ó tô na linha dois Rose e que que é rows linhas e linha dois ponto delete que que ele vai fazer deletar a linha é aquele control menos que a gente conhece aqui no Excel é como se eu chegasse aqui que fizesse control menos que que ele te
pergunta você quer deslocar pra esquerda deslocar para cima linha inteira coluna inteira que que eu quero fazer shift XL eu quero deletar e jogar para cima as células beleza assim que eu fizer essa e assim que eu apagar assim que eu fizer essa instrução daqui eu quero progredir na minha barra de progresso e eu quero dizer para ela qual o andamento que eu estou no momento e qual que é o andamento eu tenho que pensar Beleza o meu contador agora tá em um eu tô na primeira iteração de quantas última linha eu vou iterar isso
daqui ó eu tô na primeira iteração de 501 interações Na verdade é um pouquinho menos do que isso eu tenho ó o total 500 iterações então o total que eu tenho daqui é última linha menos um então Ó vou Abrir parênteses última linha menos um é o meu total e quanto que eu tô agora eu tô em cont eu tô na primeira iteração ó cont igual 1 primira iteração de quantas de 500 Qual que é o meu progresso é isso daqui ó igual 1 so 500 que dá 0,2 isso daqui em percentual ainda dá 0,2
então ele continuaria mostrando lá pra gente ó 0% Beleza então ele vai progredir a barra de progresso e eu mandei como parâmetro ó entre parênteses repara essa função não tinha nada entre parênteses essa daqui tem alguma coisa entre parênteses Então vamos ver qual que é a diferença dessa função função progredir barra Progresso entre parênteses eu coloquei um argumento ó eu tô pedindo um argumento chamado andamento e ele é um double que que é um double é um valor com casas decimais uma fração Um percentual um número com casa decimal perfeito andamento é o que eu
tenho que passar então lembra que eu tô passando o andamento que é aquele 0,02 beleza que que ele vai fazer com essa informação Primeiro de tudo eu vou definir uma variável que é o with total que é minha o meu comprimento total que a gente viu lá que era 216 e o meu width atual que é qual que deveria ser a largura da minha barra de progresso o total a gente viu que é 216 o meu atual vai ser o quê o 216 que é o total multiplicado por quem pelo meu andamento então se eu
progredi até agora 0,2 e eu tenho 216 216 x 0,22% vai dar o total que eu tenho de comprimento nesse momento então ó with Total vezes um andamento que me foi passado como parâmetro eu tenho a meu a o meu comprimento atual show de bola barra de progresso ponto quadro and é quadro Progresso ponto with que é o meu comprimento vai ser o quê with atual a continha que a gente acabou de fazer aqui que nada mais é do que o total multiplicado pelo andamento e aqui embaixo barra D Progresso texto andamento texto andamento ponto
caption lembra que a gente mudou aqui nele o caption que tava 0% completo eu tenho que mudar isso daqui para quê percentual completo vai permanecer lá no meu texto só que eu tenho que colocar o quê Qual o percentual que a gente tem até o momento lembra o andamento ele passa dessa forma igual 1 so 500 e ele vem assim ó exatamente assim 0,002 como é que Eu transformo isso daqui num percentual eu tenho que multiplicar isso daqui por 100 ó igual multiplicado por 100 0,2 por isso daqui seria dessa forma beleza só que eu
não quero mostrar com casa decimal eu quero arredondar isso daqui então eu quero tirar toda das casas decimais como é que eu faço no Excel seria arredondar a r na verdade esse número aqui ponto e vírgula Quantos dígitos zero dígitos que eu não quero nenhuma casa decimal então Esso daqui ficaria zero quando ele for lá pra segunda interação ó continua zero quando ele for lá pra terceira interação já tá lá 1% ó quando ele tiver na 15ª iteração ó 3% quando el tiver na sex x2ª E por aí vai então ele vai aumentando isso daqui
para mim é exatamente essa mesma coisa que eu vou ter que fazer lá dentro do VBA primeiro andamento que é quanto já me foi passado multiplicado por 100 que a gente vai ter ó esse cara daqui andamento multiplicado por 100 e o tem que arredondar ele então ó dentro disso daqui ó round o quê andamento multiplicado por 100 zero zero casos decimais esse número eu vou juntar com o texto percentual completo e vou jogar isso aonde dentro do caption do meu texto andamento da minha barra de progresso perfeito então deletou a linha ele vai progredir
na minha barra de progresso e aqui eu tenho uma instrução inha chamada do events que que isso daqui significa faça os eventos que que isso daqui significa eu tô pedindo pro VBA Executar tudo ali o que ele deveria executar o Diego se eu não colocar isso daqui o que que vai acontecer ele não vai Executar tudo vai só que ele vai tentar fazer isso sem te mostrar o que tá acontecendo o vbl vai tentar fazer isso da forma mais eficiente possível usando o mínimo do do seu CPU possível ou seja usando a menor quantidade de
processamento do seu computador então ele não vai te mostrar essa atualização da barra de progresso que é justamente o que a gente quer que ele mostre então eu falo para ele Ó atualiza Sim eu quero que você atualize tanto o caption quanto ali a largura e me mostra isso daí a cada iteração que você for fazendo mesmo que isso custe algum processamento por quê Porque eu quero ver eu tô criando essa varra de Progresso porque eu quero ver isso daqui então falo para ele Ó Execute os eventos beleza e depois eu faço o quê eu
progrido o meu contador aqui a gente estava na primeira iteração depois que eu fiz isso eu estou na primeira mais um eu tô na segunda pronto jogo o segunda aqui e repara como eu deletei uma linha eu tenho que diminuir o meu I Como assim Diego ó estamos na linha deixa eu deletar isso aqui estamos na linha dois Beleza eu vou deletar a linha dois show de bola se eu tivesse num for normal eu iria para qual linha pra próxima pra linha TRS repara essa linha daqui não foi analisada por vou voltar eu tava nessa
linha daqui ó no 524 deletei Opa deletei o meu I agora vai pro i = 3 então eu pulei ó o 290 eu ainda não mexi nesse 290 Então sempre que eu deleto eu tô tirando uma linha da planilha então como eu tô tirando uma linha da planilha eu tenho que tirar uma linha do meu contador aqui também para ele voltar isso daqui então ó como é que isso ficaria eu fui lá ó meu = A2 deletei a linha que que eu quero fazer tiro uma unidade do meu I ele vai para i = 1
pô Diego mas ele não deveria tá aqui calma por quê quando ele vem para cá ele vai pro next e quando ele vai pro next ele acrescenta um no meu I Então o i que tava aqui vem para cá Aí sim ele vai fazer o quê vai deletar aqui vem para cá adiciona um e vai deletar E por aí vai e o meu contador vai fazendo também tudo bonitinho Então essa partezinha daqui é um for bem clássico que a gente tem só que a diferença é que a gente tá deletando linhas e como a gente
tá deletando algo que interfere no nosso contador a gente tem que atualizar esse cont computador para não deixar nenhuma linha sem ser analisado beleza para te ajudar vou deixar uma aulinha aqui de for para te ajudar bastante com isso daí para você entender as aplicações como é que ele funciona essa parte de estrutura de repetição Mas como eu falei a barra de progresso se aplica a qualquer código que você for criar nesse caso eu só Criei um exemplo zinho com essa estrutura de repetição e para fechar que que a gente precisa fazer a gente precisa
fechar a barra de progresso assim que ele terminar o grosso ali do código que no meu caso é essa estrutura de repetição beleza fecha a minha barra de progresso O que que a minha função fechar a barra de progresso faz unload barra de progresso barra de progresso então eu dou um unload no nome do meu formulário perfeito então recapitulando variáveis descubro a última linha abro a barra de progresso executo ali a minha estrutura de repetição e a medida que eu tô executando eu preciso dessas duas linhas aqui ó dessas duas não dessas três aqui ó
essas três são as linhas da minha barra de progresso essas outras daqui são linhas do meu código e depois que eu termino grosso eu fecho ali minha barra de progresso Ah isso daqui que eu tinha colocado como comentário é o seguinte se a célula que ele tá analisando se o valor dela fo igual a vazio então repara imagina que ele já deletou todas as linhas ele fez isso daqui ele tá aqui na linha dois que que ele tem que fazer se for vazio para sai do for Então tá Exit for ele vem direto para cá
por quê senão quando ele deletar todas as linhas ele vai ficar fazendo o quê ele vai ficar fazendo isso aqui ó deletando deletando deletando infinito ele vai entrar num Loop Infinito e nunca vai parar de deletar então é bom conferir se a célula que ele tá deletando é vazia se for vazia não faz mais nada então ele termina o código por isso que eu coloquei isso daqui aqui e só comentei no final então agora só falta o quê salvar a nossa planilha e deletar linhas e ver o nosso código funcionando bonitinho e repara que esse
daqui é o formulário que eu fiz com vocês que é o cód em andamento o meu outro que eu tinha feito é antes da aula era em andamento só então ele tá deletando ali todas as linhas vamos ver se ele chega até o final bonitinho então ó aparentemente tá correspondendo isso daqui ó 90% e chegou ali no final e terminou galera eu espero que vocês tenham gostado dessa aula eu quero que você me diga aqui embaixo o que que você achou dessa aula além da sugestão de aulinha que eu já tinha pedido para você então
deixa isso daqui aqui nos comentários também que eu sempre olio para pegar uma sugestão like no vídeo se inscreve no canal clica no Sininho e eu te vejo numa próxima aula