300 Exemplos

Indicador de progresso

Progress Indicator

Abaixo, veremos um programa em Excel VBA que cria um indicador de progresso . Mantivemos o indicador de progresso o mais simples possível, mas parece profissional. Você está pronto?

O formulário de usuário que vamos criar tem a seguinte aparência:



Indicador de progresso no Excel VBA



Para criar este formulário de usuário, execute as seguintes etapas.

1. Abra o Editor Visual Basic . Se o Project Explorer não estiver visível, clique em View, Project Explorer.



2. Clique em Inserir, Formulário do usuário. Se a caixa de ferramentas não aparecer automaticamente, clique em Exibir, Caixa de ferramentas. Sua tela deve ser configurada conforme abaixo.

Configuração da tela do formulário do usuário no Excel VBA

Este formulário de usuário consiste apenas em três controles. Um controle de quadro e dois controles de rótulo.



3. Adicione o controle de quadro. Você pode fazer isso clicando em Quadro na caixa de ferramentas. Em seguida, você pode arrastar um controle de quadro no formulário de usuário. Você precisa alterar algumas propriedades deste controle de quadro. Clique com o botão direito do mouse no controle do quadro e clique em Propriedades. Esvazie o campo Legenda, defina a altura como 24 e a largura como 204.

4. Adicione o primeiro controle de rótulo e coloque-o no controle Frame. Clique com o botão direito do mouse no controle do rótulo e, a seguir, clique em Propriedades. Mude o nome para Bar, BackColor para Highlight, esvazie o campo Caption, defina Height como 20 e Width como 10.

5. Adicione o segundo controle de rótulo e coloque-o acima do controle Frame. Clique com o botão direito do mouse no controle do rótulo e, a seguir, clique em Propriedades. Mude o nome para Texto e mude a Legenda para '0% Concluída'.

6. Altere a legenda do formulário do usuário para o indicador de progresso.

Depois de concluído, o resultado deve ser consistente com a imagem do formulário do usuário mostrada anteriormente.

7. Coloque um botão de comando em sua planilha e adicione a seguinte linha de código para mostrar o formulário de usuário:

Privado SubCommandButton1_Click ()

UserForm1.Show

Fim Sub

Se você já passou por outros exemplos de formulário de usuário neste site, você sabe que este é o momento de criar o Sub UserForm_Initialize. Este Sub é executado automaticamente sempre que o formulário do usuário é carregado. Assim, ao usar o método Show para o Userform, o código será executado automaticamente. Em vez do Sub UserForm_Initialize, criamos o Sub UserForm_Activate. Usando esta sub-rotina, o Excel VBA pode atualizar o formulário do usuário para mostrar o progresso da macro.

8. Abra o Editor Visual Basic .

9. No Project Explorer, clique com o botão direito do mouse em UserForm1 e clique em View Code.

10. Escolha Userform na lista suspensa à esquerda. Escolha Ativar na lista suspensa à direita.

11. Adicione a seguinte linha de código:

Privado SubUserForm_Activate ()

código

Fim Sub

Explicação: este sub chama outro sub código denominado que vamos criar em um minuto. Confuso? Você pode passar por nosso Função e Sub capítulo para aprender mais sobre subs. Se você estiver com pressa, execute os seguintes passos e você ficará bem.

12. Coloque o subcódigo nomeado em um módulo (No Editor do Visual Basic, clique em Inserir, Módulo). Este é apenas um exemplo. Este é o lugar para adicionar seu próprio código quando quiser usar este indicador de progresso para sua própria macro. O código é o seguinte.

Subcódigo()

NenhumeuComo Inteiro, jComo Inteiro, pctComplComo Solteiro

Sheet1.Cells.Clear

Prai = 1Para100
Praj = 1Para1000
Células (i, 1). Valor = j
Próximoj
pctCompl = i
progresso pctCompl
Próximoeu

Fim Sub

Explicação: primeiro, inicializamos algumas variáveis. Em seguida, limpamos a planilha1. Usamos um loop duplo para mostrar os valores de 1 a 1000 nas primeiras 100 linhas da planilha. Isso manterá o Excel VBA ocupado por um tempo e nos dará a oportunidade de ver o progresso da macro. A variável pctCompl (abreviatura de percentCompleted) mede o progresso da macro. Finalmente, chamamos outro sub nomeado progress e passamos o valor da variável pctCompl para atualizar o Userform. Assim podemos ver o andamento da macro!

13. Adicione outro sub nomeado progresso. O código é o seguinte:

Subprogresso (pctComplComo Solteiro)

UserForm1.Text.Caption = pctCompl & '% Concluído'
UserForm1.Bar.Width = pctCompl * 2

DoEvents

Fim Sub

Explicação: a primeira linha de código altera a legenda do primeiro controle de rótulo. A segunda linha de código altera a largura do segundo controle de rótulo. Adicione DoEvents para atualizar o Userform.

14. Saia do Editor do Visual Basic e clique no botão de comando na planilha:

Resultado:

Resultado do indicador de progresso

Nota: para esta macro, usamos a variável i para medir o progresso. Por exemplo, na linha 11, 10% é concluído. Isso pode ser diferente para sua macro. A técnica de passar o valor da variável pctCompl para o subprogresso para atualizar o Userform permanece a mesma.

como inserir um valor como texto no excel

4/11 concluído! Saiba muito mais sobre os formulários do usuário>
Vá para o próximo capítulo: Faixa



^