Excelente Didática - Explica de forma rápida, sem enrolação, de forma inteligente e compromissada. E o principal, sem essas "breguices" de bonequinhos star war e camisetinhas do super mario. Ninguem aguenta mais isso.
Olá Marcos! Agradeço por compartilhar seu conhecimento conosco. Eu consegui fazer a minha barra de progresso. Ficou exatamente como você mostrou. Show. Só não consegui unir a barra a minha necessidade. Preciso que ela inicie junto com a macro de inicialização do arquivo e termine com a abertura da pasta, ou seja, ao termino da macro de inicialização do arquivo Excel. Pode me ajudar nessa questão? Eu tentei colocar no meio da macro, mas a barra se torna apenas uma etapa da inicialização e não está sincronizada com a Macro inteira.
Será se você pode me ajudar com uma dúvida, tipo coloquei num UseForm uma Label onde é calculado e exibido um valor num AfterUpdate de duas Caixas Texto. Aí eu quero esse valor da Label lançado em uma célula na planilha com dados do UseForm, Tem como fazer isso? Estou tentando aqui mas não consegui ainda. O código que tentei usar é esse, mas da erro. Cells(Linha, 5) = Lbl_HPd.Value Desculpe se não consegui explicar direito.
Parabéns.. Sou programador há 30 anos, e ainda utilizo o famoso clipper. Estou me aventurando no VBA e sua explanação é de tirar o chapéu. Bela didática.
Rapaz q saudade viu...meu primeiro contato com programação foi ainda no 2º Grau técnico aprendendo Clipper....show e sucesso ai em sua caminhada no VBA
Parabéns Marcos...pena não poder dar milhões de likes. Na época de 2º Grau técnico (meados de 90) ainda na escola aprendi o VB 4.0 e no final de 90, inicio de 2000 programei em VB 5.0 e 6.0 mas eles possuem o componente progress bar. Há anos (décadas) não programava em VB. Uma necessidade recente de importação no excel necessitava da barra, já havia conseguido a lógica da porcentagem no entanto não queria usar de terceiros ou adicionar referência de componentes , então achei seu vídeo que resolve esse problema com uma solução de MUITA CRIATIVIDADE e de forma simples..... parabéns mesmo.
Excelente aula, uma dica as variáveis vc pode usar na msm linha, exemplo: Dim total as Long, X as Long, largura as Long, percentual as Long fica a dica 👍🏽
Inscrito, Bom dia ! Professor, tem como pelo VBA aumentar a porcentagem de visualização da impressão ? A cada clique na macro ele aumentar 5% na visualização. Parabéns pelo canal
Olá Joel, fico feliz que tenha dado certo. Muito estranho o Unload não ter funcionado. Por favor, poderia enviar o arquivo para eu verificar? marcusrodello@excelonlinebrasil.com Abs👍
@@ExcelOnlineBrasil segue meu código: Sub ATUALIZAR() Application.ScreenUpdating = False Dim teste teste = "TESTE" CONTARLINHAS = 0 Sheets("COMPRADORES").Select Range("A2").Select Range(Selection, Selection.End(xlDown)).Select TOTALLINHAS = Selection.Count Range("A2").Select teste = ActiveCell.Value Do Until teste = "" Sheets("LEADS").Select CONTARLINHAS = CONTARLINHAS + 1 PERCENTUAL = CONTARLINHAS * 100 / TOTALLINHAS PROGRESSO = PERCENTUAL * 250 / 100 DoEvents UserForm1.Show UserForm1.Label1.Width = PROGRESSO UserForm1.Label2.Caption = Round(PERCENTUAL, 0) & " %" Range("A2").Select Do While ActiveCell.Value "" If teste = ActiveCell.Value Then ActiveCell.EntireRow.Delete Else ActiveCell.Offset(1, 0).Select End If Loop Sheets("COMPRADORES").Select
If ActiveCell.Value "" Then ActiveCell.Offset(1, 0).Select teste = ActiveCell.Value Else End If Loop Sheets("LEADS").Select Application.ScreenUpdating = True Range("A2").Select End Sub Esta sub compara uma lista de compradores com uma lista de leads. Caso o lead tenha virado comprador ele é excluido da lista de Leads evitando dados duplicados. Então eu conto o número de compradores, pois esse numero é meu "100%" cada vez que eu verifico os leads eu faço um doevents. Ja tinha tentado de tudo e não dava certo, meu erro era a propriedade SHOWMODAL QUE ESTAVA TRUE. COLOQUEI FALSE E FOI SUCESSO. FALTA AGORA CONSEGUIR FAZER O UNLOAD FUNCIONAR
Prezado Marcus. Sua dica sobre barra de progresso foi muito satisfatória. Montei a mesma e funcionou corretamente. Poderia me ajudar mostrando em que ponto do código devo chamar essa macro. Coloquei no inicio do Código mas não deu certo. Poderia me ajudar? Obrigado
Olá Edson, tudo bem? A evolução da barra de evolução pode ser incrementeada a qualquer momento. Caso sua macro nao possua Loops, voce pode contar as etapas que ocorrem na macro e ir incrementando uma por vez com uma variável. Mas caso possua Loops, a brincadeira fica ainda melhor, pois logo no inicio da macro vc pode calcular a quantidade de loops a serem executados (o que seria o 100%), e a partir daí a cada loop executado alimentaria a barra de evolução. Um abs.😉
Obrigado pelo conteúdo, uma dúvida, onde boto o código da minha macro para acompanhar a evolução? No exemplo ele acompanhou somente o total com valor fixo, correto?
@@Grangeonify contar os códigos não, nem será necessário. O que precisa é contar o número de células ou variáveis que serão afetadas pelo processo, algo assim. Você utiliza loops em seu código?
Olá Marcus Tudo bem.. Assisti o seu video hoje da barra de progresso e ficou show. Acontece que quando eu mando chamar a sub barra_evolucao encontra um erro pra mim de que não é possível mostrar o formulario sem janela restrita quando um formulario de janela restrita é exibido. Queria acrescentar a sub no meu cadastro de agendamento e tirar a msgbox para exibir a mensagem de "Cadastrado com sucesso" pela barra de progresso. Até vi alguns comentarios no youtube mas não compreendi. Poderia me ajudar . Agradeço e um grande abraço.
Olá, tudo bem e vc? Essa , mensagem sobre janela restrita se refere a propriedade ShowModal . Uma vez que configurar o ShowModal, pode excluir a linha do Msgbox caso não precise dela. Falo sobre ShowModal nessas aulas : - th-cam.com/video/Nq7PKVT7R7U/w-d-xo.html - th-cam.com/video/kJGsIdxfPDM/w-d-xo.html Um abraço😉
Bom dia amigo! Fiz, aqui esta barra de Progresso foi show, Mas os valores 100% executa muito rápido, sei que pode me ajudar, quero fazer de uma forma que preencha de uma forma compassada, avança e para, até concluir 100% e que o campo que será preenchido de 0 a 100% fosse de cantos arredondado. Desde já agradeço.
Olá Valter. No caso de cantos arredondados, seria interessante tentar utilizar Formas do Microsoft Excel para isso ao invés de userform. Você precisa definir como vai funcionar esse Avança e Para. Pode definir no próprio código com um IF para parar quando atingir 25%, por exemplo. E aí deixa um botão para o usuário avançar para a próxima etapa, algo assim. Abraço.👍
Show de aula, só uma dúvida, na variável total posso colocar tipo o número da última linha preenchida? Linha = Sheets("meu arquivo").Range("A1").End(xlDown).Row Ou outro código que informe para a variável Total o valor? É viável isso?
Olá André. Sim, é viável utilizar este código para manter o número de linhas de um modo dinâmico. Porém, eu evito utilizar o "Sheets("meu arquivo").Range("A1").End(xlDown).Row" pois, na hipótese de possuir apenas o cabeçalho da tabela na planilha e nenhum registro ainda, ele vai direto para a ultima linha da planilha (1.048.576). Outra coisa, no lugar de Sheets("meu arquivo"), é interessante que utilize o nome da planilha que está la no Project Explorer no Visual Basic Editor, porque dessa forma, caso alguém altere o nome da aba, não vai impactar na execução do código. Então ficaria assim, por exemplo : Linha = Planilha1.range("a" & Rows.Count).End(xlUp).Row Faça o teste por favor, creio que é uma solução mais duradoura a longo prazo. Espero ter ajudado. Um abraço! 😉
@@ExcelOnlineBrasil Perfeito, vou testar e informo se deu certo, talvez colocar um "If" para que se a Linha for (1.048.576) ela mudar a variável Linha para valor 10, para essa condição também, ou vê desnecessário esse "If"
@@ExcelOnlineBrasil Olá, montei o ProgressBar, que vai acionar pelo evento Click em um UseForm de lançamentos de dados numa planliha. No evento Click na primeira linha de comando está o Call Barra_Evolucao. Ele carrega o UseForm da barra de progresso, mas ela não executa, o que pode ser? Usei o código abaixo, o que acha? Sub Barra_Evolucao() Application.ScreenUpdating = False Dim Total As Long Dim x As Long Dim Largura As Long Dim PERCENTUAL As Double Linha = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row - 2
Total = Linha UserForm_ProgressBar.Show Largura = UserForm_ProgressBar.LblBarra.Width For x = 1 To Total DoEvents PRECENTUAL = x / Total UserForm_ProgressBar.LblBarra.Width = PERCENTUAL * Largura UserForm_ProgressBar.Lbl_Valor = Round(PERCENTUAL * 100) & " %" Next UserForm_ProgressBar.Caption = "PROCESSANDO " & Lbl_Valor & " PARA O " & UCase(ActiveSheet.Name)
Olá boa noite, veja se pode me ajudar. Minha barra está fechando sozinha, fiz uma macro onde o total é a contagens de linhas que o macro percorre, com ela vai rodar exatamente pelo a quantidade programada de linhas, quando eu rodo de forma manual, com o F8 vai de boa, a barra não fecha, quando eu coloco para rodar o script automático ela fica em 12,5% que é o percentual correto mas depois disso a barra fecha, o script roda até o final sem a barra. Consegue me ajudar? Desde já muito obrigado, sua didática é perfeita, 1 vez que assisti o vídeo entendi 90 % do processo.
Olá Paulo. Apesar da Barra ser uma solução que confere ao projeto um tom muito profissional, ela também consome uma boa dose de memoria. Acredito que por exibir a evolução por cada linha percorrida, o computador não esteja conseguindo ser capaz de exibir a progressão de um modo tão detalhado. Acredito que pode ser uma boa aumentar o incremento, atualizar a barra de evolução por exemplo a cada 10 ou mais linhas percorridas. No loop For Next pode fazer isto ajustando o incremento na cláusula STEP. Um abraço e bons estudos! 😉
o video ficou muito bom, porem tenho uma planilha com 30 mil registros ai fiz como colocou no video , ele começa a processar porem quando chega proximo dos 50% do progress bar aparece a mensagem que o excel nao esta respondendo e depois de alguns segundos finaliza. Como fazer para essa mensagem de "excel nao respondendo" nao aparecer? Ja tentei de tudo, como colocar false no screenupdating, false no enableevents, calculation manual mas mesmo assim continua a aparecer essa mensagem. obrigado
Olá Marcelo. Pelo que descreveu da a impressão de que o computador está com dificuldades de exibir os updates da subrotina, pode ser uma boa executar a macro e acompanhar pelo Gerenciador de Tarefas o uso da CPU e consumo da memoria RAM para entender como está o desempenho da maquina na hora que o Excel começa a não responder. A Barra de progresso depende da exibição dos updates da subrotina para funcionar, e dependendo de quais são as etapas do processo pode deixar a macro mais pesada, causando lentidão ou até mesmo essa falta de resposta do excel. Uma alternativa seria você executar a macro sem a barra de progresso e do modo mais enxuto possível para ver se assim o excel consegue executar a rotina até o final sem colapsar. Nesta aula mostro como deixar a macro mais leve e rápida, pode ajudar : th-cam.com/video/bfkDD95j8x0/w-d-xo.html Caso execute, então realmente o computador não está dando conta de exibir esse status. Outra opção é ao invés de utilizar o userform, utilizar uma célula com percentual e aplicar a Formatação Condicional de Barra de Dados, pode deixar mais leve. Espero ter ajudado Marcelo, um abs. 😉
Bom Dia Gostaria que me ensisse a fazer um sorteio de nomes mas que nao repetissem estes nomes e que seja projetado no projeto somente o simbolo da igreja abaixo escrito ganhadorr do sorteio e abaixo aparecera o nome do soteado e que tenha um botao no projetor com o nome e depois de sorteado este nome que ele nao seja mais sorteado sortear e que a tela tenha uma cor total e que nao apareça o excell poderia me ajudar
Magnífico!! Agora só descobrir uma forma de colocar ele rodando na minha macro 😂
Top to Amanda o vba Excel ainda mais com o chat gpt que ajuda a gente para um caramba tô me sentindo um programador 😂
merece 100000 LIKE, simples e realista
Excelente Didática - Explica de forma rápida, sem enrolação, de forma inteligente e compromissada. E o principal, sem essas "breguices" de bonequinhos star war e camisetinhas do super mario. Ninguem aguenta mais isso.
Olá Marcos! Agradeço por compartilhar seu conhecimento conosco. Eu consegui fazer a minha barra de progresso. Ficou exatamente como você mostrou. Show.
Só não consegui unir a barra a minha necessidade. Preciso que ela inicie junto com a macro de inicialização do arquivo e termine com a abertura da pasta, ou seja, ao termino da macro de inicialização do arquivo Excel. Pode me ajudar nessa questão?
Eu tentei colocar no meio da macro, mas a barra se torna apenas uma etapa da inicialização e não está sincronizada com a Macro inteira.
Muito bom o código, Marcos.. Valeu mesmo. Forte abraço.
Sensacional Pete!!!! Parabéns pelo trabalho TH-camr!!!! Saudadona, beijão na família...abraço!!!!
Adicione hoje mesmo a seus projetos uma Barra de Progresso Profissional e auxilie os usuários informando o status do processamento😀
Será se você pode me ajudar com uma dúvida, tipo coloquei num UseForm uma Label onde é calculado e exibido um valor num AfterUpdate de duas Caixas Texto. Aí eu quero esse valor da Label lançado em uma célula na planilha com dados do UseForm, Tem como fazer isso?
Estou tentando aqui mas não consegui ainda.
O código que tentei usar é esse, mas da erro.
Cells(Linha, 5) = Lbl_HPd.Value
Desculpe se não consegui explicar direito.
@@andreoak_l_l_ ao invés de usar a propriedade .value, tente usar a propriedade . caption
Excelente. Ótima aula. Parabéns!
Muito boa sua aula, agora preciso inserir esta barra de evolução em uma macro, vou aguardar alguma indicação sua...
Parabéns.. Sou programador há 30 anos, e ainda utilizo o famoso clipper. Estou me aventurando no VBA e sua explanação é de tirar o chapéu. Bela didática.
Obrigado Luis, ja brinquei muito com o clipper.
U😉m abraço!
Rapaz q saudade viu...meu primeiro contato com programação foi ainda no 2º Grau técnico aprendendo Clipper....show e sucesso ai em sua caminhada no VBA
Não acredito que não conhecia esse canal! Sensacional. Sua didática é fantástica.
Que bom que gostou Arthur, obrigado e um abraço.👍😉
Sensacional!!!!
Parabéns Marcos...pena não poder dar milhões de likes.
Na época de 2º Grau técnico (meados de 90) ainda na escola aprendi o VB 4.0 e no final de 90, inicio de 2000 programei em VB 5.0 e 6.0 mas eles possuem o componente progress bar.
Há anos (décadas) não programava em VB. Uma necessidade recente de importação no excel necessitava da barra, já havia conseguido a lógica da porcentagem no entanto não queria usar de terceiros ou adicionar referência de componentes , então achei seu vídeo que resolve esse problema com uma solução de MUITA CRIATIVIDADE e de forma simples..... parabéns mesmo.
Muito obrigado André.
É imensamente gratificante saber que estamos conseguindo prestar este auxílio.
Um grande abs😉👍
Obrigado!
Show Professor... Muito obrigado mais uma vez.. 🤜🏽🤛🏽
Feliz em ter ajudado André. Obrigado e conte conosco. Abs
Muito BOm!!! obrigado
Excelente!! E parabéns pela pronúncia dos termos em inglês
I'm Algerian and a new subscriber who is very interested, thanks for this video
Welcome and Thanks for subscribing Chichou.
Any questions, feel free to ask.
😉
Parabéns, super bem explicado!!
Excelente aula, uma dica as variáveis vc pode usar na msm linha, exemplo: Dim total as Long, X as Long, largura as Long, percentual as Long fica a dica 👍🏽
Marcus, você é muito bom. Gostei muito da sua didática. Objetiva, clara, eficaz. Parabés
♥️♥️♥️
Fantástico
Que aula maravilhosa. Parabéns !!!
Parabéns, boa fala e de explicação, olhei vários , mas esta explicação foi excelente, resolve meus problemas de forma simples.
Feliz em ajudar meu amigo.
Um abs, 👍
Inscrito, Bom dia ! Professor, tem como pelo VBA aumentar a porcentagem de visualização da impressão ?
A cada clique na macro ele aumentar 5% na visualização.
Parabéns pelo canal
Amigo bacana, mas seria legal disponibilizar o projeto para baixarmos para estudo? Consigo ? Obrigado !
Muito bom!!! Valeu msm por compartilhar esse conhecimento!!
Obrigado Renato, feliz em ajudar amigo. Um abraço
Vídeo perfeito. Obrigado 👍
Top dms!!
Muito bom seu canal!
Olá, me inscrevi no seu canal, gostei!
O que acha de uma colaboração entre canais?😉
marcusrodello@excelonlinebrasil.com
@@ExcelOnlineBrasil Oi, Marcus!
Te mandei e-mail!
Muito bom, parabéns ajudou muito, ganhou um inscrito abraços
Top
Excelente ótima didática, funcionou como um relógio suíço só tive um mínimo problema o comando Unload não funcionou pra fecha-la existe algum outro?
Olá Joel, fico feliz que tenha dado certo.
Muito estranho o Unload não ter funcionado.
Por favor, poderia enviar o arquivo para eu verificar?
marcusrodello@excelonlinebrasil.com
Abs👍
@@ExcelOnlineBrasil também não consigo executar o unload também tentei .close e nada. estranho d +
@@ExcelOnlineBrasil segue meu código:
Sub ATUALIZAR()
Application.ScreenUpdating = False
Dim teste
teste = "TESTE"
CONTARLINHAS = 0
Sheets("COMPRADORES").Select
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
TOTALLINHAS = Selection.Count
Range("A2").Select
teste = ActiveCell.Value
Do Until teste = ""
Sheets("LEADS").Select
CONTARLINHAS = CONTARLINHAS + 1
PERCENTUAL = CONTARLINHAS * 100 / TOTALLINHAS
PROGRESSO = PERCENTUAL * 250 / 100
DoEvents
UserForm1.Show
UserForm1.Label1.Width = PROGRESSO
UserForm1.Label2.Caption = Round(PERCENTUAL, 0) & " %"
Range("A2").Select
Do While ActiveCell.Value ""
If teste = ActiveCell.Value Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Sheets("COMPRADORES").Select
If ActiveCell.Value "" Then
ActiveCell.Offset(1, 0).Select
teste = ActiveCell.Value
Else
End If
Loop
Sheets("LEADS").Select
Application.ScreenUpdating = True
Range("A2").Select
End Sub
Esta sub compara uma lista de compradores com uma lista de leads. Caso o lead tenha virado comprador ele é excluido da lista de Leads evitando dados duplicados.
Então eu conto o número de compradores, pois esse numero é meu "100%"
cada vez que eu verifico os leads eu faço um doevents.
Ja tinha tentado de tudo e não dava certo, meu erro era a propriedade SHOWMODAL QUE ESTAVA TRUE. COLOQUEI FALSE E FOI SUCESSO. FALTA AGORA CONSEGUIR FAZER O UNLOAD FUNCIONAR
Prezado Marcus. Sua dica sobre barra de progresso foi muito satisfatória. Montei a mesma e funcionou corretamente. Poderia me ajudar mostrando em que ponto do código devo chamar essa macro. Coloquei no inicio do Código mas não deu certo. Poderia me ajudar? Obrigado
Olá Edson, tudo bem?
A evolução da barra de evolução pode ser incrementeada a qualquer momento.
Caso sua macro nao possua Loops, voce pode contar as etapas que ocorrem na macro e ir incrementando uma por vez com uma variável.
Mas caso possua Loops, a brincadeira fica ainda melhor, pois logo no inicio da macro vc pode calcular a quantidade de loops a serem executados (o que seria o 100%), e a partir daí a cada loop executado alimentaria a barra de evolução.
Um abs.😉
Obrigado pelo conteúdo, uma dúvida, onde boto o código da minha macro para acompanhar a evolução? No exemplo ele acompanhou somente o total com valor fixo, correto?
Exato Raphael, porém é a mesma regra caso for aplicar um total dinâmico, alterando apenas como irá alimentar a variável Total.
Mas existe uma forma de eu contar na minha macro quantos códigos são executamos para alimentar a variável total?
@@Grangeonify contar os códigos não, nem será necessário.
O que precisa é contar o número de células ou variáveis que serão afetadas pelo processo, algo assim.
Você utiliza loops em seu código?
Perfeito! Obrigado 🙏
Meu amigo como eu faço para inserir o CÓDIGO PRINCIPAL, para mostrar o progresso real da minha macro?
Como faço para abrir a barra de progresso depois do login? (Obrigado)
Olá Marcus Tudo bem.. Assisti o seu video hoje da barra de progresso e ficou show. Acontece que quando eu mando chamar a sub barra_evolucao encontra um erro pra mim de que não é possível mostrar o formulario sem janela restrita quando um formulario de janela restrita é exibido. Queria acrescentar a sub no meu cadastro de agendamento e tirar a msgbox para exibir a mensagem de "Cadastrado com sucesso" pela barra de progresso. Até vi alguns comentarios no youtube mas não compreendi. Poderia me ajudar . Agradeço e um grande abraço.
Olá, tudo bem e vc?
Essa , mensagem sobre janela restrita se refere a propriedade ShowModal . Uma vez que configurar o ShowModal, pode excluir a linha do Msgbox caso não precise dela.
Falo sobre ShowModal nessas aulas :
- th-cam.com/video/Nq7PKVT7R7U/w-d-xo.html
- th-cam.com/video/kJGsIdxfPDM/w-d-xo.html
Um abraço😉
olá Marcus muito obrigado pelo retorno. Vou assistir as aulas e depois te aviso. Obrigado. @@ExcelOnlineBrasil
Fiz diretamente na coluna na planilha, como acionar ela junto com o botao cadastrar?
e aí, conseguiu? estou com a mesma dúvida...
@@TripaOSSO Ainda não consegui, não obtive resposta do professor.
@@jorgegp5982 valeu meu caro se eu conseguir sanar essa dúvida eu compartilharei a solução a vc
Para aparecer a barra ao abrir a planilha é ao colocar em pasta de trabalho?
Lucas, para executar logo ao abrir o arquivo, utilize esses comandos:th-cam.com/video/cgkid07_Ekk/w-d-xo.html
Um abs😉
Bom dia amigo! Fiz, aqui esta barra de Progresso foi show, Mas os valores 100% executa muito rápido, sei que pode me ajudar, quero fazer de uma forma que preencha de uma forma compassada, avança e para, até concluir 100% e que o campo que será preenchido de 0 a 100% fosse de cantos arredondado. Desde já agradeço.
Olá Valter.
No caso de cantos arredondados, seria interessante tentar utilizar Formas do Microsoft Excel para isso ao invés de userform.
Você precisa definir como vai funcionar esse Avança e Para. Pode definir no próprio código com um IF para parar quando atingir 25%, por exemplo.
E aí deixa um botão para o usuário avançar para a próxima etapa, algo assim.
Abraço.👍
Valeu, obrigado.
Eu já criei meu código de barras. Mas não sei como colocar minha macro para mostrar no código
Show de aula, só uma dúvida, na variável total posso colocar tipo o número da última linha preenchida?
Linha = Sheets("meu arquivo").Range("A1").End(xlDown).Row
Ou outro código que informe para a variável Total o valor?
É viável isso?
Olá André.
Sim, é viável utilizar este código para manter o número de linhas de um modo dinâmico.
Porém, eu evito utilizar o "Sheets("meu arquivo").Range("A1").End(xlDown).Row" pois, na hipótese de possuir apenas o cabeçalho da tabela na planilha e nenhum registro ainda, ele vai direto para a ultima linha da planilha (1.048.576).
Outra coisa, no lugar de Sheets("meu arquivo"), é interessante que utilize o nome da planilha que está la no Project Explorer no Visual Basic Editor, porque dessa forma, caso alguém altere o nome da aba, não vai impactar na execução do código.
Então ficaria assim, por exemplo :
Linha = Planilha1.range("a" & Rows.Count).End(xlUp).Row
Faça o teste por favor, creio que é uma solução mais duradoura a longo prazo.
Espero ter ajudado.
Um abraço!
😉
@@ExcelOnlineBrasil Perfeito, vou testar e informo se deu certo, talvez colocar um "If" para que se a Linha for (1.048.576) ela mudar a variável Linha para valor 10, para essa condição também, ou vê desnecessário esse "If"
Olá André.
Se for utilizar o "Planilha1.range("a" & Rows.Count).End(xlUp).Row", não vai precisar do IF.
Abs👍
@@ExcelOnlineBrasil Olá, montei o ProgressBar, que vai acionar pelo evento Click em um UseForm de lançamentos de dados numa planliha.
No evento Click na primeira linha de comando está o Call Barra_Evolucao.
Ele carrega o UseForm da barra de progresso, mas ela não executa, o que pode ser? Usei o código abaixo, o que acha?
Sub Barra_Evolucao()
Application.ScreenUpdating = False
Dim Total As Long
Dim x As Long
Dim Largura As Long
Dim PERCENTUAL As Double
Linha = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row - 2
Total = Linha
UserForm_ProgressBar.Show
Largura = UserForm_ProgressBar.LblBarra.Width
For x = 1 To Total
DoEvents
PRECENTUAL = x / Total
UserForm_ProgressBar.LblBarra.Width = PERCENTUAL * Largura
UserForm_ProgressBar.Lbl_Valor = Round(PERCENTUAL * 100) & " %"
Next
UserForm_ProgressBar.Caption = "PROCESSANDO " & Lbl_Valor & " PARA O " & UCase(ActiveSheet.Name)
Application.Wait (Now + TimeValue("00:00:05"))
Unload UserForm_ProgressBar
Application.ScreenUpdating = True
End Sub
Olá boa noite, veja se pode me ajudar. Minha barra está fechando sozinha, fiz uma macro onde o total é a contagens de linhas que o macro percorre, com ela vai rodar exatamente pelo a quantidade programada de linhas, quando eu rodo de forma manual, com o F8 vai de boa, a barra não fecha, quando eu coloco para rodar o script automático ela fica em 12,5% que é o percentual correto mas depois disso a barra fecha, o script roda até o final sem a barra. Consegue me ajudar? Desde já muito obrigado, sua didática é perfeita, 1 vez que assisti o vídeo entendi 90 % do processo.
Olá Paulo.
Apesar da Barra ser uma solução que confere ao projeto um tom muito profissional, ela também consome uma boa dose de memoria.
Acredito que por exibir a evolução por cada linha percorrida, o computador não esteja conseguindo ser capaz de exibir a progressão de um modo tão detalhado.
Acredito que pode ser uma boa aumentar o incremento, atualizar a barra de evolução por exemplo a cada 10 ou mais linhas percorridas.
No loop For Next pode fazer isto ajustando o incremento na cláusula STEP.
Um abraço e bons estudos!
😉
@@ExcelOnlineBrasil Obrigado pela Ajuda, vou fazer isso.
Mas, nesse caso, onde entra nosso código a ser mensurado?
o video ficou muito bom, porem tenho uma planilha com 30 mil registros ai fiz como colocou no video , ele começa a processar porem quando chega proximo dos 50% do progress bar aparece a mensagem que o excel nao esta respondendo e depois de alguns segundos finaliza. Como fazer para essa mensagem de "excel nao respondendo" nao aparecer?
Ja tentei de tudo, como colocar false no screenupdating, false no enableevents, calculation manual mas mesmo assim continua a aparecer essa mensagem.
obrigado
Olá Marcelo.
Pelo que descreveu da a impressão de que o computador está com dificuldades de exibir os updates da subrotina, pode ser uma boa executar a macro e acompanhar pelo Gerenciador de Tarefas o uso da CPU e consumo da memoria RAM para entender como está o desempenho da maquina na hora que o Excel começa a não responder.
A Barra de progresso depende da exibição dos updates da subrotina para funcionar, e dependendo de quais são as etapas do processo pode deixar a macro mais pesada, causando lentidão ou até mesmo essa falta de resposta do excel.
Uma alternativa seria você executar a macro sem a barra de progresso e do modo mais enxuto possível para ver se assim o excel consegue executar a rotina até o final sem colapsar.
Nesta aula mostro como deixar a macro mais leve e rápida, pode ajudar : th-cam.com/video/bfkDD95j8x0/w-d-xo.html
Caso execute, então realmente o computador não está dando conta de exibir esse status.
Outra opção é ao invés de utilizar o userform, utilizar uma célula com percentual e aplicar a Formatação Condicional de Barra de Dados, pode deixar mais leve.
Espero ter ajudado Marcelo, um abs.
😉
O problema agora é saber como aplicar
Esta aula pode ajudar : th-cam.com/users/liveiRdUki3ZgoI
Bom Dia Gostaria que me ensisse a fazer um sorteio de nomes mas que nao
repetissem estes nomes e que seja projetado no projeto somente o simbolo da igreja
abaixo escrito ganhadorr do sorteio e abaixo aparecera o nome do soteado e que tenha
um botao no projetor com o nome e depois de sorteado este nome que ele nao seja mais sorteado
sortear e que a tela tenha uma cor total e que nao
apareça o excell poderia me ajudar