Notifications
Clear all

Barra de progresso - Associada ao progresso de uma macro.

6 Posts
3 Usuários
0 Reactions
1,745 Visualizações
(@renatoddd)
Posts: 0
New Member
Topic starter
 

Amigos, boa tarde.

Andei pesquisando aqui nos tópicos já criados, e embora haja alguma discussão sobre o assunto, não consegui compreender.

Eu tenho um código em VBA que leva uns 15 segundos rodando.
No meio deste código, tem uma pequina parte que faz um loop.
Depois a macro segue linha por linha.

Eu quero fazer uma barra de progresso que, inicie uma contagem (aqela barra que vai enchendo), quando a macro começar a rodar e que estivesse relacionada ao progresso real do código.

Alguém consegue me orientar ?
Achei algumas coisas por aí mas não consigo compreender nem com reza.

Obrigado a todos.
Sou o antigo usuário Sianetto mas perdi meu e-mail e esqueci minha senha aqui no fórum. Tive de criar outra conta.

Muito obrigado a todos.

 
Postado : 17/07/2014 12:29 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Leia:
http://www.google.com.br/cse?cx=partner ... 0progresso

Att

 
Postado : 17/07/2014 12:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

No tópico abaixo tem um exemplo bem simples e comentado.
Barra de Progresso (ProgressBar)
viewtopic.php?t=10557&p=55733

[]s

 
Postado : 17/07/2014 10:57 pm
(@renatoddd)
Posts: 0
New Member
Topic starter
 

amigos, boa tarde.

Obrigado pelas respostas.

O caso é que os exemploes que vcs postaram e todos os demais que encontrei, consideram um loop onde, ao final de cada passagem, o contador que alimenta a barra é acrescido de mais 1.
O meu caso não tem loop. É apenas um código muito grande.

Tens alguma sugestão ?

Obrigado.

 
Postado : 18/07/2014 12:54 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Renato, dificilmente irá encontrar uma rotina de Barra de Progressão que não efetue um Loop, ele é necessário para a contagem, se ler atentamente no tópico que indiquei:
" o importante a analisar em qualquer Barra de Progressão é que a mesma não entende se determinada rotina associada a ela terminou ou quanto tempo ela levará, isto tem de ser definido nos Parametros e temos de ir alterando estes parametros até ver que a sincronização ficou ajustada, e isto varia de caso a caso, ou seja das ações executadas pelas rotinas"
Então não importa o tamanho e sua rotina, no exemplo que anexei, você terá de fazer a chamada a sua macro na rotina Sub XLPrgBar_Sample() onde está indicado, após a linha :
For i = 1 To AllRows

Call SuaMacro aqui você tem de chamar a sua macro

então de acordo com os parametros de contagem que colocou será efetuado o loop para ir preenchendo a Barra.

[]s

 
Postado : 18/07/2014 1:19 pm
(@edcronos)
Posts: 1006
Noble Member
 

vc pode de inicio tentar otimizar a macro

e se não resolver...

no loop é definido o incremento da barra
então vc define esse incremento ao longo do seu código

em cada parte do código faz um incremento da barra de tempo

mas sugiro que primeiramente tente otimizar o seu codigo,
pode postar um exemplo de planilha com a sua macro aplicada
para o pessoal analisar para ver se tem algo que possa melhorar.

att

 
Postado : 18/07/2014 1:35 pm