ProgressBar no Excel
Veja como criar uma progressbar no Excel.
Neste artigo você verá como criar uma barra de progresso no VBA Excel para indicar a situação de um determinado processamento ao seu cliente de forma visual e fácil.
No exemplo fazemos a barra de progresso no Excel de duas formas: Na planilha e em formulário VBA.
Como Colocar uma ProgressBar no Excel?
Ás vezes temos rotinas que demoram muito no Excel, e colocar uma barra de progresso no Excel é uma boa maneira de demonstrar a evolução das tarefas realizadas.
No exemplo desta planilha foi inserido na própria planilha a barra de progresso.
Para inserir uma barra de progresso na planilha você deve clicar na guia Desenvolvedor e no botão Inserir e no botão mais controles e selecione o controle “Microsoft ProgressBar Control, version 6.0” e desenhe o objeto de progressão na planilha.
A barra de progresso tem três propriedades principais que iremos configurar para que ela funcione:
- Min: Mínimo valor da barra de progresso, normalmente é zero, mas pode colocar outro valor.
- Max: Maior valor da sua barra de progresso, é usado pra dimensionar o quando foi feito já do total.
- Value: Valor atual do progresso. É ao alterar esta propriedade que a barra de progresso se movimenta.
A barra de progresso pode ser usada em várias situações, mas uma das que tem maior serventia é quando temos loops no código.
Com a barra de progresso sabemos o quanto já foi processado e o quanto ainda falta processar, além de sabermos que não travou o código.
Abaixo um exemplo do código fonte de um processamento com atualização da barra de progresso do Excel.
Sub lsConverterValores() On Error Resume Next Dim lRng As Range Dim lCel As Range Dim lContador As Long Dim lTotal As Long Set lRng = Plan1.Range("A1:A30000") lTotal = lRng.Rows.Count ProgressBar21.Visible = True 'Define os valores máximo, mínimo e zera a progress bar Plan1.ProgressBar21.Min = 0 Plan1.ProgressBar21.Max = lTotal Plan1.ProgressBar21.Value = 0 For Each lCel In lRng If lCel.Value <> "" And IsNumeric(lCel.Value) Then lCel.Value = lCel / 100 'Incrementa a ProgressBar Plan1.ProgressBar21.Value = Plan1.ProgressBar21.Value + 1 End If Next lCel Selection.Style = "Comma" ProgressBar21.Visible = False MsgBox "Processo concluído!", vbInformation, "Sucesso!" End Sub
O código acima converte uma coluna de valores dividindo por 100 (tem formas bem melhores de fazer isso, é apenas um teste), e a cada iteração a propriedade Value da ProgressBar é incrementada em 1.
Plan1.ProgressBar21.Value = Plan1.ProgressBar21.Value + 1
ProgressBar Formulário VBA Excel
Outra forma de fazer isto é com formulários no Excel.
Você pode preferir chamar um formulário para um determinado processamento ao invés de fixá-lo na sua planilha, o que faz sentido.
Neste caso dê ALT+F11 para abrir o VBE e clique em Inserir Formulário.
Na Caixa de Ferramentas selecione a opção ProgressBar e desenhe no formulário conforme abaixo.
Pode incluir também um botão para que ao clicar nele seja realizada uma ação.
Está pronto, agora basta usar a mesma técnica de definir as propriedades Min, Max e alterar a propriedade Value de acordo com o processamento for sendo executado.
Para ser diferente fizemos o seguinte código para o botão processar:
Sub lsProcessamentoFormulario() On Error Resume Next Dim i As Long 'Define os valores máximo, mínimo e zera a progress bar frmProgresso.progBarProcessamento.Min = 0 frmProgresso.progBarProcessamento.Max = 30000 frmProgresso.progBarProcessamento.Value = 0 For i = 1 To frmProgresso.progBarProcessamento.Max frmProgresso.progBarProcessamento.Value = frmProgresso.progBarProcessamento.Value + 1 Next i MsgBox "Processo concluído!", vbOKOnly, "Sucesso" Unload frmProgresso End Sub
No código acima simplesmente é feito um loop de 0 à 30.000 incrementando então o processamento de um em um.
Download da Barra de Progresso Excel
Baixe a planilhaCurso Excel Completo – Do Básico ao VBA
Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo: