VBA Progress Bar

Barra de progresso do Excel VBA no Excel

Barra de progresso é algo que nos mostra quanto de um processo foi feito ou concluído quando executamos grandes conjuntos de códigos que exigem mais tempo para serem executados, usamos a barra de progresso no VBA para mostrar ao usuário o status do processo, ou se temos vários processos em execução em um único código, usamos a barra de progresso para mostrar quanto processo avançou.

Uma barra de progresso mostra a porcentagem de tarefas concluídas quando a tarefa real está sendo executada atrás da tela com um conjunto de instruções fornecidas pelo código.

Quando o código VBA leva um tempo considerável para ser executado, o usuário fica ansioso para saber quando ele pode terminar. Por padrão, precisamos esperar o tempo todo para concluir a tarefa, mas inserindo a barra de progresso, ficamos sabendo o progresso do código VBA.

Em quase todos os softwares de computador, vemos um gráfico de barras de progresso que mostra o progresso da tarefa que estamos executando, exatamente como a imagem abaixo.

No Excel, podemos criar uma barra de progresso usando a codificação VBA. Se você já se perguntou como podemos criar uma barra de progresso, este é o artigo feito sob medida para você.

Você pode baixar este modelo de barra de progresso VBA aqui - Modelo de barra de progresso VBA

Crie sua própria barra de progresso

Para criar uma barra de progresso, precisamos seguir várias etapas. Abaixo estão as etapas a serem envolvidas na criação do gráfico de barras de progresso.

Etapa 1: Crie ou insira um novo formulário de usuário.

Assim que você clicar na opção acima, verá um formulário de usuário como o abaixo.

Etapa 2: Pressione a tecla F4 para ver a janela de propriedades do VBA.

Nesta guia de propriedades, precisamos alterar as propriedades do formulário do usuário VBA que inserimos.

Etapa 3: altere o nome do formulário do usuário para UFProgressBar.

Agora podemos referir este formulário de usuário com o nome “UFProgressBar” durante a codificação.

Etapa 4: altere a propriedade Show Model do formulário do usuário para FALSE.

Etapa 5: agora ajuste o alinhamento do usuário de para atender às suas necessidades. Alterei a altura do formulário do usuário para 120 e a largura para 300.

Etapa 6: Altere a legenda do formulário do usuário para “Barra de status de progresso”.

Etapa 7: Agora, na caixa de ferramentas do formulário do usuário, insira LABEL no formulário do usuário na parte superior.

Com este rótulo, precisamos definir as propriedades do rótulo. Exclua a legenda e deixe-a em branco e ajuste a largura da etiqueta.

Etapa 8: altere o nome do rótulo para “ProgessLabel”.

Etapa 9: Agora, na caixa de ferramentas, pegue a moldura e desenhe logo abaixo do rótulo que inserimos nas etapas anteriores. Certifique-se de que o quadro esteja no centro do formulário do usuário.

Etapa 10: Agora, precisamos alterar algumas das propriedades do Quadro para torná-lo exatamente igual ao formulário do usuário que inserimos.

Propriedade 1: Altere o nome do quadro para “ProgressFrame”.

Propriedade 2: exclua a legenda e deixe-a em branco.

Propriedade 3: Altere o efeito especial do quadro para 6 - fmSpecialEffectBump.

Depois de todas essas mudanças, nosso formulário de usuário deve ficar assim.

Etapa 11: agora insira mais uma etiqueta. Desta vez, insira a etiqueta apenas dentro da moldura que inserimos.

Ao inserir a etiqueta, certifique-se de que o lado esquerdo da etiqueta se ajuste exatamente à moldura que inserimos, conforme mostrado na imagem acima.

Etapa 12: Após inserir a etiqueta, altere as propriedades da etiqueta da seguinte forma.

Propriedade 1: Altere o nome do rótulo para “MainProgressLabel”.

Propriedade 2: exclua a legenda.

Propriedade 3: Altere a cor de fundo conforme desejar.

Ok, agora concluímos o processo de configuração da barra de progresso e, neste momento, está assim.

Agora precisamos inserir códigos para fazer isso funcionar perfeitamente.

Etapa 13: Para fazer a estrutura, adicione a macro abaixo no excel.

Código:

 Sub InitUFProgressBarBar () com UFProgressBar .Bar.Width = 0 .Text.Caption = "0%". Mostrar vbModeless End With 

Nota: “UFProgressBar” é o nome dado ao formulário do usuário e “Bar” é o nome dado ao quadro que criamos e “Texto” é o nome dado ao rótulo dentro do quadro.

Agora, se você executar este código manualmente ou através da tecla F5, devemos ver a barra de progresso assim.

Etapa 14: Agora precisamos criar uma macro para realizar nossa tarefa. Estou realizando a tarefa de inserir números de série de 1 a 5000. Junto com este código, precisamos configurar o gráfico de barras de progresso também. O código abaixo é o código feito sob medida para você.

Código:

 Sub ProgressBar_Chart () Dim i As Long Dim CurrentUFProgressBar As Double Dim UFProgressBarPercentage As Double Dim BarWidth As Long i = 1 Chamar InitUFProgressBarBar Faça Enquanto i <= 5500 Células (i, 1) .Value = i CurrentUFProgressBar = i / 2500 BarWidth = UFProgressBar. Border.Width * CurrentUFProgressBar UFProgressBarPercentage = Round (CurrentUFProgressBar * 100, 0) UFProgressBar.Bar.Width = BarWidth UFProgressBar.Text.Caption = UFProgressBarPercentage & "% concluído" EndProgress UF Loq. I + 1