Moderatori: Anthony47, Flash30005
Dim StopIt As Boolean, ResetIt As Boolean
Dim LastTime, Foglio1 As Worksheet
Dim CronoShape As Shape
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub AVVIA_TIMER_CRONOSHAPE() 'PULSANTE START
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim StartTime, FinishTime, totalTime, PauseTime
'''''''''''''''''''''''''''''''''''''''''''''''''
Set Foglio1 = ThisWorkbook.Worksheets("Foglio1")
Set CronoShape = Foglio1.Shapes("CronoShape")
'''''''''''''''''''''''''''''''''''''''''''''''''
StopIt = False
ResetIt = False
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
With Foglio1
''''''''''''''''''''''''''''''''''''''''''''''''''''''
CronoShape.Visible = True
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If CronoShape.TextFrame _
.Characters.Text = Format(0, "00") & ":" & _
Format(0, "00") & ":" & _
Format(0, "00") & "," & _
Format(0, "000000") Then
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
StartTime = Timer
PauseTime = 0
LastTime = 0
'''''''''''''''''''''''''''''''''''''''''''''''''''
Else
''''''''''''''''''''''''''''''''''''''''''''''''''
StartTime = 0
PauseTime = Timer
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
StartIt:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DoEvents
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If StopIt = True Then
'''''''''''''''''''''''''''''''''''''''''''
LastTime = totalTime
Exit Sub
''''''''''''''''''''''''''''''''''''''''
Else
''''''''''''''''''''''''''''''''''''''''''''''''''
FinishTime = Timer
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
totalTime = ((FinishTime - StartTime) + (LastTime - PauseTime))
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
TTime = (totalTime * 1000000)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
HM = (TTime Mod 1000000)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
TTime = (TTime \ 1000000)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
HH = (TTime \ 36000000)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
TTime = (TTime Mod 36000000)
''''''''''''''''''''''''''''''''''''''''''''''''''''''
MM = (TTime \ 60)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SS = (TTime Mod 60)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
CronoShape.TextFrame _
.Characters.Text = Format(HH, "00") & Space(1) & "h" & Space(1) _
& ":" & Space(1) & _
Format(MM, "00") & Space(1) & "m" & Space(1) _
& ":" & Space(1) & _
Format(SS, "00") & Space(1) & "s" & Space(1) _
& "," & Format(HM, "000000") & Space(1) & "µs" 'OK
'''''''''''''''''''''''''''''''''''''''''''''''''''
If ResetIt = True Then
''''''''''''''''''''''''''''''''''''''
CronoShape.TextFrame _
.Characters.Text = Format(0, "00") & ":" & _
Format(0, "00") & ":" & _
Format(0, "00") & "," & _
Format(0, "000000") 'OK
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
LastTime = 0
PauseTime = 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End
''''''''''''''''''''''''''''''''''''''''''''''''''''
End If
''''''''''''''''''''''''''''''''''''''''''''''
GoTo StartIt
''''''''''''''''''''''''''''''''''''''''''''''
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub STOP_TIMER_CRONOSHAPE() 'PULSANTE STOP
StopIt = True
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub RESET_TIMER_CRONOSHAPE() 'PULSANTE RESET
Set Foglio1 = ThisWorkbook.Worksheets("Foglio1")
Set CronoShape = Foglio1.Shapes("CronoShape")
'''''''''''''''''''''''''''''''''''''''''''''
With Foglio1
'''''''''''''''''''''''''''''''''''''''''''''''
CronoShape.TextFrame _
.Characters.Text = Format(0, "00") & ":" & _
Format(0, "00") & ":" & _
Format(0, "00") & "," & _
Format(0, "000000") 'OK
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
CronoShape.Visible = False
'''''''''''''''''''''''''''''''''''''''''''''''''''
LastTime = 0
ResetIt = True
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
Sub AVVIA_TIMER_ClockShape()
Dim StartTime, FinishTime, totalTime
Dim Foglio2 As Worksheet, ClockShape As Shape
Set Foglio2 = ThisWorkbook.Worksheets("Foglio2")
Set ClockShape = Foglio2.Shapes("ClockShape")
With Foglio2
ClockShape.Visible = msoTrue 'NON FUNZIONA <<<<<<<<<<<<<<<<<<
StartTime = Timer
DoEvents
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'PROCEDURA DA MISURARE IL TEMPO DI ESECUZIONE
For MyVal = 1 To 50000 '0
.Range("D8").Value = MyVal
Next MyVal
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
FinishTime = Timer
totalTime = (FinishTime - StartTime)
TTime = (totalTime * 1000000)
HM = (TTime Mod 1000000)
TTime = (TTime \ 1000000)
HH = (TTime \ 36000000)
TTime = (TTime Mod 36000000)
MM = (TTime \ 60)
SS = (TTime Mod 60)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'QUI VIENE MOSTRATO LO SHAPE <<<<<<<<<<<<<<<<<<<<<<<
ClockShape.TextFrame _
.Characters.Text = Format(HH, "00") & Space(1) & "h" & Space(1) _
& ":" & Space(1) & _
Format(MM, "00") & Space(1) & "m" & Space(1) _
& ":" & Space(1) & _
Format(SS, "00") & Space(1) & "s" & Space(1) _
& "," & Format(HM, "000000") & Space(1) & "µs" 'OK
'''''''''''''''''''''''''''''''''''''''''''''''''''''
MsgBox "Tempo trascorso: " & vbNewLine & vbNewLine & _
ClockShape.TextFrame.Characters.Text
ClockShape.TextFrame _
.Characters.Text = Format(0, "00") & ":" & _
Format(0, "00") & ":" & _
Format(0, "00") & "," & _
Format(0, "000000")
ClockShape.Visible = msoFalse 'FUNZIONA <<<<<<<<<<<<<<<
End With
End Sub
ClockShape.Visible = msoTrue 'NON FUNZIONA <<<<<<<<<<<<<<<<<<
StartTime = Timer
DoEvents: DoEvents: DoEvents
'etc etc
Sub Principale
For MyVal = 1 To 50000
.Range("D8").Value = MyVal
Next MyVal
End Sub
Sub Principale()
Dim myTim As Single, DBG As Boolean
DBG = False 'A Oppure true se voglio misurare i tempi
myTim = Timer
'ciclo di istruzioni 1
If DBG Then Debug.Print "Fase1: " & Format(Timer - myTim, "0.00")
'myTim = Timer 'B Scommentare se si vuole calcolare solo il Delta
'ciclo di istruzioni 2
If DBG Then Debug.Print "Fase2: " & Format(Timer - myTim, "0.00")
'myTim = Timer 'B Scommentare se si vuole calcolare solo il Delta
End Sub
Torna a Applicazioni Office Windows
Visitano il forum: Nessuno e 14 ospiti