O Propriedade StatusBar do objeto Aplicativo em Excel VBA pode ser usado para indicar o progresso de uma macro longa. Dessa forma, você pode informar ao usuário que uma macro ainda está em execução.
Situação:
A macro que vamos criar preenche o intervalo ("A1: E20") com números aleatórios.
Adicione as seguintes linhas de código ao botão de comando:
1. Primeiro, declaramos três variáveis do tipo Integer, chamadas i, j e pctCompl.
Dim i As Integer, j As Integer, pctCompl As Integer
2. Adicione um loop duplo.
Para i = 1 a 20
Para j = 1 a 5
Próximo j
Proximo eu
Adicione as seguintes linhas de código (em 3, 4 e 5) ao loop.
3. Use a função RandBetween para importar um número aleatório entre 20 e 100.
Células (i, j) .Value = WorksheetFunction.RandBetween (20, 100)
4. Inicialize a variável pctCompl. A segunda linha de código escreve o valor da variável pctCompl e algum texto descritivo na barra de status.
pctCompl = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Importando dados…" & pctCompl & "% concluído"
Exemplo: Para i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% foi concluído.
5. Usamos o método Wait do objeto Application para simular uma macro longa.
Application.Wait Now + TimeValue ("00:00:01")
6. Para restaurar o texto da barra de status padrão, defina a propriedade StatusBar como False (fora do loop).
Application.StatusBar = False
Resultado quando você clica no botão de comando na planilha:
Nota: Você pode interromper uma macro a qualquer momento pressionando Esc ou Ctrl + Break. Para uma abordagem mais visual, consulte nosso programa Indicador de Progresso.