Olá seja bem-vindo ao canal da organic shits eu sou o Fernando e hoje vim trazer para vocês mais um vídeo sobre exel VBA Na verdade eu vim trazer um código para vocês que eu desenvolvi recentemente para mim foi muito útil tá em algumas empresas que eu trabalhei Talvez seja útil para vocês também ah mesmo que o a o código em si não seja útil e vocês podem aproveitar parte desse código para outros projetos então é super interessante fiquem comigo até o final para que você veja todo o processo de desenvolvimento Tá eu vou fazendo mesmo
modelo que vocês já conhecem eu trago aqui mostro o funcionamento e futuramente aí eu mostro para vocês Ah o código e apresento como foi a lógica do desenvolvimento do código Tá bom então vamos lá antes de mais nada vou pedir para você que não é inscrito ainda no canal para aproveitar e se inscrever e se você já for inscrito dá uma conferida se sua inscrição continua válida tá pode ser que o YouTube tenha de desinscrever assim porque já tem um tempo que o canal deu uma parada no final do ano e tá retomando aí a
a a a recorrência de postagem de vídeos agora então dá uma conferida aí para ver se você não perdeu a sua inscrição tá aproveita já para deixar o like no início do vídeo você não paga nada de graça nem tempo você perde é um segundinho é só dá um um clique aí e aí até o final do vídeo se você não gostar do conteúdo em si você pode ir lá e descurtir h como preferir Tá bom vamos partir aqui pro pro conteúdo então em resumo o que que é o código de hoje tá eu vou
apresentar para vocês um código eu criei um log ah de acesso a planilhas eu trabalhei em algumas empresas Onde existe a necessidade de preenchimento de planilhas tá E muita das vezes e essas planilhas elas são acessadas e preenchidas por mais de um usuário o que causa ruído né então eventualmente vai ter um usuário ali que vai acidentalmente ou propositalmente alterar algum item dessa sua planilha e aí pode estragar a sua planilha e às vezes uma fórmula que é alterada estraga todo o restante da planilha e para você corrigir ou reverter isso atualmente tem até a
questão das versões né você consegue recuperar uma versão anterior você consegue acessar lá com Excel e dar uma olhada Ah quem foi que acessou o que se você tiver no mesmo ambiente né do Office 365 Mas como eu sei que nem todo mundo tem Office 365 a última versão atualizada nem todo mundo trabalha com planilhas no mesmo ambiente Às vezes você manda planilha para um outro usuário um outro computador numa outra Enfim no outro ambiente ele te devolve essa planilha Então essa é uma solução ainda muito útil para quem h tem aí esse esse essa
necessidade né de compartilhar às vezes sua planilha alguém preencher e você saber exatamente quem mexeu em que da sua planilha né quem estragou aquela planilha ou quem fez alguma alteração que não devia seja mais uma vez propositar ou acidental você vai conseguir ter esse recurso visualizando certinho aí Tá bom eu vou deixar o código na na na descrição desse vídeo tá então vou deixar o link para você fazer o download desse código ã muita gente a ainda me pergunta como faz para fazer o download né tem o a instrução na na descrição do vídeo mas
o pessoal acha que acaba não lendo com tanta atenção ah E aí muitas vezes gera esses comentários questionando como fazer né e eu vou fazer aqui um tutorial bem breve tá é coisa simples bem rápida para você que tá assistindo que já acompanha o canal pode ser um pouco redundante mas gente Quem aí quer saber como acessar os arquivos que eu disponibilizo aqui no canal da organic sheets é bem simples você vai acessar o site hub.org anic shits ptop esse Hub é o nosso portal aqui onde eu utilizo para compartilhar justamente os conteúdos gratuitos né
aqui das aulas fora outros serviços que tem aqui mas prioritariamente para isso então ele tem aqui você acessando esse site você vai cair nessa telinha onde você pode ver cursos ver mais informações sobre VB license ah ter acesso ao ao LinkedIn né eventualmente caso você queira mandar um alô lá pelo LinkedIn mas em resumo você vai vir aqui em login no HUB no canto superior e direito da sua tela Tá clicando aqui é bem simples você vai fazer o seu login com o seu e-mail e senha caso você ainda não tenha acessado nenhuma vez seja
a primeira vez você vai vir aqui em cadastrar-se tá E aí você vai cadastrar é bem simples o cadastro é nome e-mail senha e se eu não me engano WhatsApp que é opcional Você clicou lá em cadastrar já tá habilitado para você acessar né não tem uma dupla validação né enfim o processo é justamente para tornar-se bem simples Tá mas Lembrando que o e-mail ele tem que ser um e-mail válido porque o arquivo da aula vai ser caminhado diretamente pro seu e-mail tá bom feito isso você vai vir aqui e vai clicar em login Tá
feito o login você vai cair nesse dashboard Inicial com algumas informações Fique à vontade para poder dar uma lida nós já alcançamos a marca aí de 11.000 downloads mais de 11.000 downloads aí nos últimos meses isso é bem gratificante significa que o conteúdo aqui da organic sheets é relevante para vocês então fico muito feliz ah vocês podem vir aqui no arquivo de downloads na opção de downloads e aqui tem todos os conteúdos gratuitos das aulas aqui da do canal do YouTube da organic sheets tá então é só você vir aqui pode olhar conteúdo por conteúdo
pode clicar aqui fazer download não tem limite de download até o presente momento né e eventualmente vocês podem aqui buscar pelo nome da aula tá você tá olhando aqui o conteúdo desse vídeo você tem um título esse vídeo você pode vir aqui buscar pelo título clicar em buscar ele vai filtrar para você tudo que tem aí esse título tá por exemplo vou colocar aqui VBA e vou clicar para filtrar então ele vai retornar tudo que tem VBA no nome aqui tem VBA no nome aqui tem VBA no nome aqui tem VBA no nome enfim você
pode pesquisar pelo número né um dos números aqui do canal da organic sheets os vídeos são enumerados E aí é bem simples é só clicar em fazer o download e pronto você recebe lá no seu e-mail verifica lá na caixa de spam porque o seu navegador né o seu provedor de e-mail ele pode reconhecer como um spam porque é o e-mail automático e lá você pode fazer o download do arquivo e utilizar para melhorar o seu estudos em Excel e VBA Tá bom então esse Portal ele foi todo desenvolvido por iniciativa da organic sheets para
organizar e melhorar essa biblioteca de arquivos né não se perder esses arquivos ela é costeada 100% pelo organic sheets então fique à vontade eu peço só em troca que você se inscreva no canal deixe o seu like deixe o seu comentário do que você achou até mesmo que poderia melhorar esse Portal tá Fique à vontade para deixar aí suas críticas e sugestões tá bom bom orientado como que a gente faz esse processo vamos dar uma olhadinha aqui no nosso conteúdo da aula de hoje então eu tenho aqui uma planilha de dados de RH são Dados
fictícios tá só pra gente poder eh exemplificar aqui eu vou abrir ela para que a gente possa dar uma olhada tá pronto é uma planilha com vários dados dados esses Como eu disse são dados fictícios para testes e utilização em banco de dados aqui então tem o nome matrícula salário data de admissão setor cargo e status tá então tem vários aqui eh eh dados e aleatórios e fictícios e a ideia é que eu possa compartilhar essa planilha com qualquer pessoa na minha empresa e essa pessoa ela possa aí fazer o uso da maneira adequada H
E que ao mesmo tempo eu não tenho receio dessa pessoa alterar algum dado que seja indevido e que possa futuramente afetar alguma análise que eu tenha feito algo nesse sentido tá ou até mesmo alterar alguma fórmula estragar toda a minha planilha enfim mais uma vez a gente vai eh resguardar fazendo a análise sobre isso tá e como que a gente vai fazer isso tá eu vou vir aqui no Alt f11 vou vir aqui em esta pasta de trabalho e aqui eu vou colar o código já Ten o código escrito e a gente vai comentar esse
código Tá então vamos lá coleiro o código aqui e a gente vai comentando na verdade o código ele já tá todo documentado essa documentação né Essa esses comentários foram feitos via inteligência artificial para poder facilitar o meu trabalho e ganhar tempo então vamos lá esse código ele registra todas as ações feitas e uma planilha de excel então basta você vir aqui mais uma vez você vai vir na sua planilha vai clicar em esta pasta de trabalho ou this workbook E aí você vai colar esse código que eu vou deixar aí no link da descrição para
você fazer o download lá no Hub da organic sheets tá então em resumo que eu faço aqui eu declaro uma variável Global tá essa variável é previous valor que ela vai pegar o valor que tava antes numa determinada célula para depois a gente colocar o antes e o depois tá ã esse evento daqui é o workbook open então toda vez que a planilha Abrir que que ele vai fazer quer dizer ele vai pegar automaticamente os dados né ele vai criar um dicionário né Esse dicionário aí vai ser o o previous values né os valores anteriores
digamos assim para guardar esses valores e aí ele vai chamar essa função enur log shits existe ou seja a gente vai eu poderia armazenar esse log de acessos em qualquer outro arquivo tá mas aí a ideia né Poderia se perder eu teria que mapear o caminho desse outro arquivo poderia ser um TXT enfim o que que eu fiz eh eu eu coloquei para ele criar no próprio arquivo de Excel então nessa própria planilha ele vai gerar um log para mim tá E aí você como gestor dessa planilha você vai conseguir ter acesso aos outros usuários
comuns não tá de que maneira a gente primeiro verifica aqui no Ener log e exist eu ver aqui ah shits exists então o que que a gente faz aqui a gente uma variável WS log tá a gente vai verificar se esse log existe então aqui eu faço uma tratativa de erro e aí eu tento eh cetar esse objeto como o a planilha log tá E aí eu volto a analisar erro então aqui eu dou para ele ignorar o erro e aqui eu volto a analisar o erro e aí eu vejo se WS log is Nothing
se não existe se WS WS log for Nothing for nada então significa que a planilha log ela ainda não existe então eu vou criar essa planilha log no meu arquivo de Excel tá então nem esse vocês não vão precisar nem ter esse trabalho de criar essa planilha log ele já vai fazer automaticamente Então o que ele vai fazer ele vai dar aqui um set WS log como um thisworkbook pshs PED então ele tá adicionando um arquivo uma planilha uma guia de planilha ele renomeia ela para log como previsto E aí na primeira linha ele vai
atribuir o os cabeçário que a gente vai precisar que é data e horário da modificação o usuário que vai que enfim que vai ter modificado a ação porque início ia colocar entre visualizar alterar enfim mas aí depois eu voltei atrás e resolvi colocar só alteração tá a ação de alteração então só quando alguém alterar alguma célula que ele vai armazenar essa informação a planilha em qual tá sendo alterado bem como a célula o endereço da célula E aí eu tenho aqui O Valor anterior e o valor novo né ou a fórmula anterior e a fórmula
nova porque a gente pode alterar também a fórmula E aí eu não quero retornar só o valor quero retornar como que foi alterada a fórmula Às vezes uma correção em si eu coloco esse cabeçário em E aí eu coloco essa planilha como shits very hiding significa que ela vai ficar super oculta então quando a pessoa fular na guia de planilha e clicar para reexibir dessa seguinte forma aqui resibir ela não vai aparecer dentre as opções de exibição a pessoa Consegue sim resibir mas só acessando aqui o ambiente de desenvolvimento em vib tá a pessoa consegue
vir por aqui e alterar a propriedade da planilha e aí beleza eu coloco para salvar esse arquivo então tô salvando o a pasta de trabalho e tô reabilitando aí os eventos para que a tela ali não fique C tá isso quando eu abro o arquivo e aí depois eu tenho exatamente quando eu altero né quando eu eu faço um um evento aqui eh eh quando seleciono e altero qualquer célula né então aqui ó por exemplo vamos vir aqui diretamente pelo pela seleção do arquivo tá então eventualmente Ah esse daqui né esse é um evento acionado
quando o usuário ele seleciona uma célula então quando eu seleciono lá uma célula Ele sempre vai disparar esse evento daqui que é o workbook que o underline sheet selection Change tá mudar a seleção do do da planilha digamos assim e aí eu defino algumas variáveis tá que é Cell como Hand e Cell k como como string né que vai ser o endereço único da célula E aí Eu começo se previous Vales fori igual a Nothing então eu atribuo crio de novo essa essa eh essa biblioteca né verifico se ela existe se ela não foi criada
E aí crio ã E aí para cada célula selecionada porque pode lembrando pode ser um grupo de células Tá mas para cada célula selecionada eu vou fazer aí uma validação vou armazenar essas informações então e eu vou dar aqui um for each Cell em target tá que é o o alvo E aí eu crio um endereço único Com base no nome da planilha e o endereço da célula selecionada Então se é Ok ele vai dar um sh que aí é o nosso shits né pon name E aí vai pegar lá o o o o name
em si o nome da planilha e vai conc com com com sinal de exclamação e vai pegar o Cell P address que é o endereço da célula Ok se a célula contiver uma fórmula Então a gente vai armazenar a fórmula caso do contrário vai armazenar o próprio valor então c cels p has fórmula é para saber se a célula contém uma fórmula ele vai retornar true ou false e se true então ele vai pegar o previous value dessa célula ele vai colocar como fórmula e passar o c pon fórmula tá E caso contrário ele vai
pegar só o valor em si né porque aí vai ser um texto lá enfim e a ele vai fazer esse looping daqui e em todas as células selecionadas tá bom E aí esse evento daqu el acionado quando a gente altera um valor efetivamente na fórmula tá então quando altero um valor ou uma fórmula na célula de eu faço esse processo daqui que é justamente o processo principal aqui da nossa planilha Então declaro algumas variáveis WS log como worksheets como Hand New Row como long old Vales como string New Val como e CC seria aí o
endereço único da célula E aí primeiro eu vou pegar se sh pname fo igual log então ah eu vou dar um egit sub ou seja se eu tiver alterando algum valor dentro da minha planilha log eu vou ignorar porque eu não na minha planilha log eu não quero registrar nada eu quero registrar em outras planilhas tá E aí eu verifico se a planilha log ela existe mais uma vez tá Por que isso porque eventualmente eu possa ter pulado essa etapa diretamente aqui no worksheets pon openen por alguma razão mas eu vou verificar se ela existe
de novo se não existir eu vou criar E aí sim depois disso eu vou dar um WS log como thisworkbook P sheets eh com nome log né eu vou a a citar esse objeto daqui então esse objeto referee a minha planilha log E aí eu vejo se o meu dicionário existe ou não tá mais uma vez se ele não existir se eu tiver P lado nas outras etapas eu vou criar de novo o dicionário aqui na verdade de novo não vou tá criando esse dicionário aqui de valores anteriores tá E aí Eu começo bom application
P enable event iG falso tá então ele e pausa todos os outros eventos e mantém o foco nesse daqui que vai processar infração de segundos e aí H erro resume next ou seja vou ignorar todos os erros que possam ocorrer durante a execução porque eventualmente vai ter erro Às vezes a célula que eu vou estar selecionando eh Pode ser que contenha algum valor não previsto aqui enfim tá então coloquei aqui pra gente poder tratar esses erros e aí eu mais uma vez eu vou fazer um looping pelas células dentro do meu Meu Alvo né E
aí eu seok né vai ser o meu sh pname E concatenado aí com endereço né E aí Eu começo busco o valor antigo no dicionário se não existir eu vou mudar para na né na verdade coloquei na Acho que sim então eu vou lá dar uma olhada lá no no no Valor anterior tá E aí Vou conferir aqui certinho O Valor anterior de de acordo com o ck com o endereço da célula E aí se eu achei eu vou armazenar em Old value tá se eu não achei eu vou colocar aqui em na e aí
eu verifico também se o valor é uma fórmula tá então se a a a célula né o novo valor dessa célula for igual a uma fórmula Então vou dar um New value igual fórmula vou passar aqui para identificar que se tratava de uma fórmula né Caso contrário eu vou dar aí somente o value para ele e aí sim eu vou com com o meu WS log Wi WS log eu vou começar numa nova linha e qual é essa nova linha Então vou dar aqui um ponto cels Rose count na coluna 1 ponto and xlup ponto
Row mais um então ou seja vou vir aqui lá embaixo enfim lá no final vou dar um contol para cima tá mais um E aí vou vir na próxima linha em branco e aí nesse caso específico a gente consegue visualizar todas as informações que serão atribuídas às células então aqui célula nova linha né na na célula com a nova linha que vai ser a linha dinâmica ali linha 300 e pouco linha 2 linha 13 enfim de dependendo da quantidade de registros que eu já tenha nesse meu log na coluna 1 vai O valor vai ser
igual a Nal então ele vai retornar a data e horário atual do seu sistema tá E aí na coluna dois que é o usuário ele vai trazer o o ambiente né usuário de ambiente então environ username tá então ele vai trazer o usuário que tá fazendo essa alteração mesma coisa na coluna TRS vou trazer o escrito alteração né porque a gente colocou para pegar somente as alterações vou pegar o nome da planilha Então vai ser sh pname é o nome da planilha que ocorreu a alteração o endereço dela que vai ser c p address o
old value e o new value E aí efetivamente a gente tem as informações salvas tá então dou aqui um to zero para eu voltar ao comportamento normal para tratar os erros né o Excel estourar quando tiver algum erro e volto a habilitar todos os eventos né Para que eu tenha os outros eventos em execução quando eu precisar tá então em resumo Esse é o código aqui vocês podem aproveitar muito trecho desses códigos para outras funcionalidades a gente tá manipulando aqui a planilha do Excel então toda vez que tem alguma alteração na planilha toda vez que
tem alguma alguma execução nessa planilha Vocês conseguem perceber que é alterado automaticamente e aí pra gente ver isso emend no funcionamento eu vou vir aqui e vou salvar essa planilha porque ela tá como xlsx eu vou salvar ela como xlsm e a gente executa ela logo em seguida Tá então vamos lá vou fechar ela aqui a gente tem a planilha xlsm vou abrir o arquivo então suponhamos aí que outro usuário seu vai abrir a planilha Então tá aqui beleza tá aqui a planilha aberto eí vamos supor que essa pessoa veio propositalmente ou sem querer enfim
alterou aqui o Davi Rocha pra equipe de ti tá E mudou aqui a data de a admissão dele para 2020 tá até aí beleza tá a pessoa fez as alterações salvou e mudou em teoria você não conseguiria saber quem que fez essas alterações Mas você acessando o ambiente desenvolvimento com Alt + f11 você vai ver que agora a gente tem uma segunda planilha aqui chamada planilha dois que é planilha log essa planilha ela foi criada automaticamente quando eu abri a planilha tá com Claro com com com código VBA habilitados tá então abrir a planilha Ela
tá aqui beleza Ela tá no status ver hiding Então veja que aqui o usuário ele não vai ver que tem uma planilha e pouco vai perceber que tá sendo armazenada as alterações dele tá Ah se ele clicar aqui e colocar para rebir ele também não vai visualizar então você pode vir aqui bloquear o seu código VBA enfim da maneira que você preferir se você não sabe como bloquear o seu código VBA se você vai compartilhar com outra pessoa se você vai quer guardar a a a a a propriedade intelectual desse código às vezes é um
projeto um super projeto que você quer resguardar quer permitir acesso por um tempo determinado eventualmente sei lá você forneceu uma empresa que você tá prestando uma consultoria mas quer determinar um prazo de validade para essa empresa utilizar o seu projeto é bem simples tá basta vocês acessarem lá mais uma vez o Hub da organic sheets nós temos aqui algo chamado VBA license tá quem não conhece o VBA license ele é justamente uma ferramenta que permite isso tá então é uma ferramenta que ela permite com que seus projetos em VBA sejam licenciados trazendo aí uma facilidade
nesse processo de segurança Então você gera um token a pessoa consegue utilizar sua planilha até quando você julgar necessário então a qualquer momento você pode ir lá e suspender o acesso você pode definir um prazo de validade você pode experimentar grátis essa planilha então é bem simples tá esse essa ferramenta você pode ver aqui como que ela funciona na prática tem um vídeo aqui tem algumas informações tá tem informações sobre valores e planos e aqui diretamente no no login quando você fizer o login do HUB eh você pode vir aqui e clicar em solicitar um
período teste e aí você pode utilizar a ferramenta sem nenhum compromisso durante aí o período de 7 dias fica à vontade para utilizar sem nenhum compromisso sem nenhum cadastro sem cadastro de cartão de crédito nada disso você testa na íntegra todos os seus projetos lá e aí eventualmente você tendo interesse posteriormente você pode fazer a contratação tá então em resumo lá eu mostro como bloquear todo seu projeto em VBA para evitar acessos evitar manipulações do código VBA E aí você vai ter lá a pessoa acessando Mas aí você também consegue armazenar aqui o log tá
então vou vir aqui então aqui a gente pode dar uma olhada no log Vou colocar aqui em visible pra gente poder dar uma olhada e aqui vocês vão conseguir perceber que H as alterações foram feitas tá então eu consigo ver que o usuário ele alterou aqui o novo valor de marketing para ti né E que a gente também alterou aqui a data de de adesão né na célula d301 Tá mesma coisa eu poderia vir aqui e atribuir uma nova fórmula Então vamos lá eu vou vir aqui ã tempo tá E vou colocar aqui igual a
data M são a quantidade de meses vou colocar a data sei lá colocar essa data daqui e vou colocar quanto que ele levaria aí para ter do anos de casa então 24 meses tá qual seria o prazo depois de 2 anos de casa e aqui eu tenho nesse formato vou colocar no formato de data ou seja em 2017 ele teria lé dia 13 de Maio de 2017 ele teria exatos 2 anos de casa tá é uma um exemplo bem lúdico bem simples só para vocês entenderem e poderem observar como que funciona também o nosso log
tá lembrando que ele vai alterar aqui Então veja que na célula H2 ele não tinha Ah eu não tinha nada na H1 coloquei o tempo não tinha nada na H2 e coloquei uma fórmula E aí veja que ele transcreve a fórmula para mim claro que a fórmula ela vem aí no formato inglês tudo que a gente escreve aqui na nosso met de fórmula do Excel ele ele Originalmente é inglês né E aí Claro tem a tradução do do Excel pro português a gente consegue el usar um data M um si e outras fórmulas cont si
soma Sis mas essas fórmulas têm seus nomes em inglês e aí você consegue pelo menos analisar aqui eh essas informações tá de fórmulas para fazer as alterações necessárias e eu consigo eventualmente claro que aqui eu coloquei visível né mas a ideia é que isso esteja invisível tá então você vai vir aqui antes de salvar e sair da sua planilha colocar em very hiding para que a pessoa para que o próximo usuário não acesse não veja as informações de log para até para não manipular não apagar alguma informação do log deixar tudo registradinho aqui exatamente o
que foi alterado e quando foi alterado tá então é isso espero que vocês tenham gostado da explicação do conteúdo aqui veja que o código ele tá bem documentado com passo a passo da explicação e vocês podem aproveitar parte desse código como falei aí para poder aplicar em outras lógicas eh de projetos particulares de vocês tá não necessariamente esse log mas vale a pena também deixar um log aí registrado nos seus projetos para garantir a a a a transparência das informações e das alterações que forem feitas aí no projeto que vocês administram ou que a equipe
administra E aí eventualmente tem aquele aquele ruído né nas informações salvas lá tá bom mais uma vez espero que vocês tenham gostado do vídeo de hoje Se vocês gostam desse formato de vídeo deixa aí nos comentários o que pode melhorar nesse código aqui se vocês têm alguma sugestão de melhoria Não esqueça de deixar o seu like se você não deixou no início do vídeo Aproveita agora para deixar o seu like se inscrever no canal se não for inscrito conferir os outros vídeos aqui do canal e eu espero você na nossa próxima aula valeu tchau tchau
n