Home Excel - Dicas Microsoft Excel VBA Excel VBA - Horas Excel planilha vba horas decrementação de segundos na celula A1

Excel planilha vba horas decrementação de segundos na celula A1

E-mail Imprimir PDF

Saberexcel site das macros

Alternativamente, esse exemplo é o mais indicado para realização de algum trabalho com decrementação de segundos(horas)
porque você não tem que ficar na espera da conclusão do loop contador o uso da função "DoEvents", que permite devolver
o controle ao sistema operacional . Baixe o exemplo de planilha no final da página.
espero que o exemplo lhe seja útil - Fique com Deus, E_Marcondes

Sub Decrementando_segundos_I()
Dim sb As Single, i As Integer
Range("A1").Value = 120
sb = Timer
For i = 120 To 1 Step -1
   Do While Timer < sb + 1
        DoEvents
   Loop
   Range("A1").Value = Range("A1").Value - 1
   sb = Timer
Next i
End Sub
'----------------------------------------------------------'

Aqui também a instruçao for next(loop) usando "DoEvents"
o usuario não fica na espera.
Sub Decrementando_segundos_II()
Dim i As Integer
Dim sb For i = 20 To 0 Step -1
Range("A1") = i
sb = Timer() + 1
Do: DoEvents: Loop While Timer() < t
      Next i
MsgBox "Loop concluido decrementando segundos"
End Sub

'----------------------------------------------------------'

Aqui falta do uso adequado da funcao 'DoEvents' usuario tem que ficar
na espera da conclusão do loop, observe.

Sub Decrementando_segundos_III()
Dim i As Single
Range("A1").Value = 20
i = Timer
Do While Timer < i + 20 And Range("A1").Value > 0
     Application.Wait (Now + TimeValue("0:00:01"))
     Range("A1").Value = Range("A1").Value - 1
Loop
End Sub



Função DoEvents

Exemplo Informações específicas

Cede o controle da execução para que o sistema operacional possa processar outros eventos.

Sintaxe

DoEvents( )

Comentários
A função DoEvents retorna um Número inteiro que representa o número de formulários abertos em versões autônomas do Visual Basic, como o Visual Basic, Professional Edition. DoEvents retorna zero a todos os outros aplicativos.

DoEvents passa o controle para o sistema operacional. O controle é retornado depois que o sistema operacional conclui o processamento dos eventos da sua fila e todas as chaves da fila SendKeys terem sido enviadas.

DoEvents tem uma maior utilidade com ações simples como permitir que um usuário cancele um processo após ter sido iniciado, por exemplo, uma procura por um arquivo. Para processos de longa execução, o controle do processador é conseguido com maior facilidade usando-se um cronômetro ou delegando-se a tarefa a um componente ActiveX EXE. Nesse último caso, a tarefa pode continuar de forma completamente independente de seu aplicativo e o sistema operacional considera a multitarefa e a divisão de tempo.

Atenção sempre que você ceder temporariamente o processador dentro de um procedimento do evento, certifique-se de que o procedimento não seja executado novamente a partir de uma parte diferente do seu código antes que a primeira chamada retorne, pois isto pode causar resultados imprevisíveis. Além disso, não use DoEvents se houver possibilidade de outros aplicativos interagirem com o seu procedimento de forma imprevisível quando você cedeu o controle.



Exemplo da função DoEvents

Este exemplo usa a função DoEvents para fazer com que a execução seja submetida ao sistema operacional uma vez a cada 1000 iterações do loop. DoEvents retorna o número de formulários abertos do Visual Basic, mas somente quando o aplicativo host for o Visual Basic.

' Crie uma variável para conter o número de formulários do Visual Basic
' carregados e visíveis.

Dim I, OpenForms
For I = 1 To 150000 ' Inicie loop.
     If I Mod 1000 = 0 Then ' Se o loop tiver se repetido 1000 vezes.
     OpenForms = DoEvents ' Submeter ao sistema operacional.
End If
Next I ' Incrementar o contador de loops


Aprenda tudo sobre o Aplicativo Microsoft Excel VBA (Visual Basic Application), sozinho, com baixo custo,
praticando com os produtos didáticos
SaberExcel


Topo da página

 Baixe o exemplo de Planilha contendo as macros acima
Excel planilha vba horas decompondo segundos na celula a1 (23.85 KB)

Última atualização em Sáb, 13 de Agosto de 2011 18:57  

Adicionar comentário

"Jamais considere seus estudos como uma obrigação, mas como uma oportunidade invejável para aprender a conhecer a influência libertadora da beleza do reino do espírito, para seu próprio prazer pessoal e para proveito da comunidade." Albert Einstein


Código de segurança
Atualizar

PROMOÇÃO DIDÁTICOS SABEREXCEL



Adquira já o Acesso Imediato
à Area de Membros

Compra Grantida --- Entrega Imediata

Aprenda Excel VBA com Simplicidade de 
códigos e Eficácia, Escrevendo Menos e
Fazendo Mais.

'-------------------------------------'
Entrega Imediata:
+  500 Video Aulas MS Excel VBA
+  35.000 Planilhas Excel e VBA
+  Coleção 25.000 Macros MS Excel VBA
+  141 Planilhas Instruções Loops
+  341 Planilhas WorksheetFunctions(VBA)
+    04 Módulos Como Fazer Excel VBA
+  Curso Completo MS Excel VBA
+  Planilhas Inteligentes


Pesquisa Google SaberExcel

Publicidade Google

<script type="text/javascript"><!--

google_ad_client = "ca-pub-2317234650173689";

/* retangulo 336 x 280 */

google_ad_slot = "0315083363";

google_ad_width = 336;

google_ad_height = 280;

//-->

</script>

<script type="text/javascript"

src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

</script>

Publicidade

RSFirewallProtected


Google Associados

Depoimentos

Adicione Saberexcel Favoritos

 
 

Aprenda tudo sobre o Aplicativo Microsoft Excel VBA

Aprenda tudo sobre o Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel,


   Sobre as WorksheetFunctions Funções de Planilhas que retornam valores do VBA