Oi pessoal.
No artigo anterior, escrevi uma macro para exibir na barra de status do Excel o andamento de um processo em execução em seu projeto VBA. Clique aqui para ler agora.
Hoje, vou continuar abordando este tema e adicionando algumas técnicas que darão um ar ainda mais profissional aos seus projetos. Que tal exibir uma barra de progresso gráfica, com contador, igual a esta da imagem abaixo?
Muito legal! E nós vamos construir uma dessas agora. Vamos começar?
Primeiramente, vou definir o que vamos precisar para a construção dessa macro.
1 Userform que vamos alterar seu nome para “frmBarraDeProgresso”;
1 Label que vamos nomeá-lo “progressBar”;
1 Frame que terá sua propriedade Name alterada para “framePb”;
1 Módulo global onde vamos escrever nossa macro.
Para iniciar a tela do VBA, use o atalho ALT+F11.
Configurando o formulário
Insira um formulário ao projeto (Inserir > UserForm) e altere sua propriedade Name para frmBarraDeProgresso.
Coloque o controle Frame e altere suas propriedades abaixo:
Name = framePb;
Caption = 0%;
SpecialEffect = 2;
Coloque o controle Label dentro do framePb e mude suas propriedades a seguir:
Name = progressBar;
Caption = (deixe em branco);
SpecialEffect = 1;
Height = 15;
Width = 5;
Ajuste o tamanho do formulário e do framePb conforme desejar, de maneira que se aproxime do modelo mostrado aqui na figura 1.
Configurando o código que será executado
Vamos usar o mesmo código de exemplo que utilizamos no artigo anterior, você pode definir o seu próprio código, caso já o tenha. Neste exemplo, a macro vai percorrer todos os registros do catálogo de telefones e exibir uma mensagem ao lado de cada registro. Isto é apenas um exemplo para estudo. Esse código deve ser escrito no Módulo1.
Configurando o código da Barra de Progresso
Esse é o código que executa a chamada do formulário frmBarraDeProgresso e implementa toda a rotina de análise do andamento do processo. Esse código também deve ser escrito no Módulo1.
Faça o download do arquivo de exemplo para testar esta macro vba. O link para baixar está no final do artigo.
Este código exibe tanto uma barrinha de progresso do processamento da sua macro como o percentual já executado. Muito útil em processos longos e demorados.
Espero que seja bem útil para vocês.
E para quem ainda não segue o @exceldoseujeito no twitter, fica aqui o convite para Follow @exceldoseujeito e ficar sempre atualizado das novidades aqui do site.
Até a próxima!
Boa tarde!
Eu procurava por um exemplo deste que possa ocorrer enquanto a macro roda, porém minha macro processa diversas planilhas (atuais 35 e que podem ser acrescidas) e em cada planilha desse arquivo executa alterações em 33 colunas e em diversas linhas, cujo número também é variável.
Como posso adaptar essa barra a minha macro?
Abç.
Rubélio
Olá Rubélio.
Coloquei sua resposta neste artigo aqui:
https://www.exceldoseujeito.com.br/2012/08/24/excel-perguntas-e-respostas-1/
Abç
Olá caros amigos,
Parabéns e obrigado pelo excelente material que vocês nos disponibilizam.
Estou buscando uma fórmula que extraia dos e-mails, o nome antes da arroba e depois da arroba, excluindo .com.br etc, aparecendo em colunas separadas.
ex: antoniosilva@teste.com [editado pelo moderador]
Coluna 1
Antonio Silva
Coluna 2
teste [editado pelo moderador]
Vocês podem me ajudar?
Abs,
Carlos
Olá Carlos.
Supondo que o email esteja na célula A1.
Para extrair o nome:
=ESQUERDA(A1;LOCALIZAR(“@”;A1)-1)
Para extrair a parte após o arroba sem o .com:
=EXT.TEXTO(A1;LOCALIZAR(“@”;A1)+1;LOCALIZAR(“.”;A1;LOCALIZAR(“@”;A1))-LOCALIZAR(“@”;A1)-1)
Só um detalhe: Não existe uma maneira de deixar o nome desmembrado como você quer, pois não há como algoritimo adivinhar qual parte é para desmembrar.
Abç