Notifications
Clear all

ProgressBar

7 Posts
2 Usuários
0 Reactions
2,451 Visualizações
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Olá galera!

Como podem ver nesse imagem, coloquei um ProgressBar para ser carregado ao efetuar o login. Utilzo o código abaixo que, por sinal, encontrei no planilhando.com.br.

ProgressBar1.Visible = True

ProgressBar1.Min = 0
ProgressBar1.max = 3
ProgressBar1.Value = 0
ProgressBar1.Visible = True

For k = 1 To 3
Application.Wait Now() + 1 / 60 / 60 / 24

ProgressBar1.Value = k
Next k
Application.Wait Now() + 1 / 60 / 60 / 24
ProgressBar1.Visible = False

Dim var1, var2 As Date
var1 = Date
var2 = Time

O que acontece é que o carregamento dele não acontece de acardo com o processamento das macros. Ele é como se fosse um gif animado... (não sei se consegui explicar)..

Eu preciso de um ProgressBar que acompanhe o processamento das macros em tempo real.. Alguem tem um exemplo que faça isso?

 
Postado : 09/02/2014 11:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, pelo nome ProgressBar1 eu acredito que está utilizando o Controle ProgressBar.

Quanto a :
"O que acontece é que o carregamento dele não acontece de acordo com o processamento das macros"
Nas instruções que colocou não tem nenhuma linha referenciando a alguma outra macro, se quer que a barra funcione ao clicar no Botão "ENTRAR", você tem de fazer os ajustes intercalando a rotina com a linha de incrementação da Barra com o da execução da rotina que definir.

Não sei se ficou claro, mas de uma olhada nos links abaixo :
Coloque uma Barra de Progresso nas Macros do Excel
No exemplo deste link, não é utilizado o Controle ProgressBar e sim Label e Frame.
http://compuclass.wordpress.com/2011/04 ... -do-excel/

Excel Macros - Show Progress Bar in Excel While Running Macro
https://groups.google.com/forum/#!topic ... wtzVh4Ryss

ProgressBar no Excel
http://guiadoexcel.com.br/progressbar-no-excel

[]s

 
Postado : 10/02/2014 12:26 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Mauro,

É isso mesmo que preciso! Você entendeu! Mas os exemplos que você me passou, são iguais aos que tive acesso anteriormente.

O código contido neles preenche a sheets de 0 a 10000 e, nesse meio tempo, a label é preenchida de acordo com o percentual de números já cadastrados. Funciona perfeitamente nesse caso. O negócio é que eu não consigo adaptá-los a minha necessidade, a qual, ao inves de preencher uma coluna de 0 a 10000, preciso que o carregamento do label seja feito durante a execução de um código qualquer.

Tem como?

 
Postado : 10/02/2014 4:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, apesar de termos varias maneiras de se criar Barras de Progresso, ou com o Controle Nativo do VBA como eu citei ou com Labe(s) Frames, geralmente elas funcionam desta forma, os exemplos mostram como funcionam, e onde você diz que executa o preenchimento de uma sheet de 0 a 1000, é entre estas linhas que deve adaptar o seu código.

De uma olhada no modelo que anexei no forum Biblioteca onde a Barra de Progresso é executada de acordo com o preenchimento de algumas celulas, então adaptei eliminando estas linhas e fazendo a chamada a Macro fora do procedimento da Barra, ou seja é feita a chamada à Macro e em um Loop volta para a rotina até a mesma terminar, 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 terá de ir alterando até ver que a sincronização ficou ajustada, e isto varia de caso a caso, ou seja das ações executadas pelas rotinas, coloquei alguns comentários na rotina, de uma olhada se consegue adaptar a sua macro.

Barra de Progresso (ProgressBar)
viewtopic.php?f=21&t=10557

[]s

 
Postado : 10/02/2014 8:05 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Mauro,

O resultado desse código é o mesmo do código que utilizo (vide abaixo).

Ou seja, a barra de processo é preenchida de acordo com a configuração do código: Application.Wait Now() + 1 / 60 / 60 / 24

Eu alinhando-o de acordo com o meu computador, não resolve muito, pois a execução dele, no meu entender, é influenciado pela configuração de cada computador.

Enfim, to patinando, abortarei a missão!

ProgressBar1.Visible = True

ProgressBar1.Min = 0
ProgressBar1.max = 3
ProgressBar1.Value = 0
ProgressBar1.Visible = True

For k = 1 To 3
Application.Wait Now() + 1 / 60 / 60 / 24

ProgressBar1.Value = k
Next k
Application.Wait Now() + 1 / 60 / 60 / 24
ProgressBar1.Visible = False

Dim var1, var2 As Date
var1 = Date
var2 = Time

 
Postado : 12/02/2014 10:34 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Você testou sua rotina como o modelo que anexei em Bibliotecas ?

 
Postado : 12/02/2014 10:51 am
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Sim, mas pelo que vi ele não carrega de acordo com a execução da macro, mas sim de acordo com a configuração que fazemos no código, a qual configura o tempo do carregamento.

#euconfusso

 
Postado : 12/02/2014 12:23 pm