Notifications
Clear all

Contar tempo de execução da rotina

3 Posts
2 Usuários
0 Reactions
865 Visualizações
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Pessoal Bom Dia!

Criei o codigo abaixo que formata um razão contabil.

Gostaria de inserir no mesmo, um codigo que fizesse a contagem do tempo decorrido até o termino de toda a rotina e que me apresentasse uma mensagem, por exemplo:

"Rotina finalizada em xx minutos, ou segundos"

Sub FORMATAR()

ULTIMA_LINHA_RAZ = Sheets("RAZÃO").Range("C1048576").End(xlUp).Row
ULTIMA_LINHA_FOR = Sheets("FORMATADO").Range("A1048576").End(xlUp).Row

If ULTIMA_LINHA_FOR = 1 Then
   ULTIMA_LINHA_FOR = 2
End If

x_ROWS = "2:" & ULTIMA_LINHA_FOR
Rows(x_ROWS).Select
Selection.Delete Shift:=xlUp

n_IMP = 0


For n_IMP = 2 To ULTIMA_LINHA_RAZ

n_SIGLA = Sheets("RAZÃO").Cells(n_IMP, 3).Value

If n_SIGLA = "CBMP" Then

Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 1).Value = Sheets("RAZÃO").Cells(n_IMP, 3).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 2).Value = Sheets("RAZÃO").Cells(n_IMP, 4).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 3).Value = Sheets("RAZÃO").Cells(n_IMP, 5).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 4).Value = Sheets("RAZÃO").Cells(n_IMP, 6).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 5).Value = Sheets("RAZÃO").Cells(n_IMP, 7).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 6).Value = Sheets("RAZÃO").Cells(n_IMP, 8).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 7).Value = Sheets("RAZÃO").Cells(n_IMP, 9).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 8).Value = Sheets("RAZÃO").Cells(n_IMP, 10).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 9).Value = Sheets("RAZÃO").Cells(n_IMP, 11).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 10).Value = Sheets("RAZÃO").Cells(n_IMP, 12).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 11).Value = Sheets("RAZÃO").Cells(n_IMP, 13).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 12).Value = Sheets("RAZÃO").Cells(n_IMP, 14).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 13).Value = Sheets("RAZÃO").Cells(n_IMP, 15).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 14).Value = Sheets("RAZÃO").Cells(n_IMP, 16).Value
Sheets("FORMATADO").Cells(ULTIMA_LINHA_FOR, 15).Value = Sheets("RAZÃO").Cells(n_IMP, 17).Value

ULTIMA_LINHA_FOR = ULTIMA_LINHA_FOR + 1

End If

Next



End Sub


 
Postado : 23/07/2015 5:48 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Experimente assim:

Sub Excelmaniacos()

Dim time1 As Date
Dim time2 As Date

time1 = Time()

'Sua rotina aqui

time2 = Time()

MsgBox "Rotina finalizada em " & CDate(time2 - time1)

End Sub

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 23/07/2015 7:00 am
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Experimente assim:

Sub Excelmaniacos()

Dim time1 As Date
Dim time2 As Date

time1 = Time()

'Sua rotina aqui

time2 = Time()

MsgBox "Rotina finalizada em " & CDate(time2 - time1)

End Sub

Issamu Bom Dia!

Muito obrigado, deu certo.
Para a minha rotina cumprir o programado esta levando 4 minutos em uma planilha de 350 mil linhas.

Abraços

 
Postado : 23/07/2015 8:13 am