› Excel e gli applicativi Microsoft Office › timer
-
AutoreArticoli
-
ciao a tutti, purtroppo ho un'altro quesito della quale non riesco a venirne a capo.
ho un foglio di un file excel della quale vorrei mettere nella cella condivisa(J7.K7) Quindi J7 un timer dove registra il tempo del file aperto che sto usando. ho provato con questa formula ma non funziona, riuscite ad aiutarmi?
Dim startTime As Date
Dim timerRunning As BooleanPrivate Sub Workbook_Open()
startTime = Now
timerRunning = True
UpdateTimer
End SubSub UpdateTimer()
If timerRunning Then
Dim elapsedTime As Double
elapsedTime = Now - startTimeDim totalSeconds As Long
totalSeconds = CLng(elapsedTime * 86400) ' Converte in secondiDim hours As Long
Dim minutes As Long
Dim seconds As Longhours = totalSeconds \ 3600
minutes = (totalSeconds Mod 3600) \ 60
seconds = totalSeconds Mod 60Worksheets("Previsione").Range("J7").Value = "Tempo trascorso: " & hours & " ore " & minutes & " minuti " & seconds & " secondi"
' Aggiorna il timer ogni secondo
Application.OnTime Now + TimeValue("00:01:00"), "UpdateTimer"
End If
End SubSub StopTimer()
timerRunning = False
End SubCiao J7:K7 condivisa intendi raggruppata?
Se così fosse, è sconsigliabile usare formule che si riferiscono a queste celle.
Il consiglio è quello di dividerle e di usare il centramento in colonna nelle proprietà delle celle dopo averle selezionate.
Io uso questo
Dim TempoIni, TempoFin, HR As Long, MM As Long, SS As Long, MI As Double, TTime As Double nel punto in cui vuoi iniziare a misurare TempoIni = Timer() nel punto in cui finisci di misurare TempoFin = Timer() e cosi calcolo il tempo trascorso TTime = (TempoFin - TempoIni) * 1000 MI = TTime Mod 1000 TTime = TTime \ 1000 HR = TTime \ 3600 TTime = TTime Mod 3600 MM = TTime \ 60 SS = TTime Mod 60 Worksheets("Previsione").Range("J7").Value = "Tempo Impiegato " & HR & " ore " & MM & " minuti e " & SS & "," & Format(MI, "000") & " secondi"ho diviso le celle che mi hai indicato e quindi adesso e' diventata la j8. ho provato cosi ma non funziona. dov'è il problema?
Dim tempoIniziale As Double
Dim timerAttivo As BooleanPrivate Sub Workbook_Open()
' All'apertura del file, inizia il conteggio del tempo
tempoIniziale = Now
timerAttivo = True
Call StartTimer
End SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean)
' Alla chiusura del file, interrompi il timer e salva il tempo finale in J8
timerAttivo = False
Dim tempoTrascorso As Double
tempoTrascorso = Now - tempoIniziale
Sheets("previsione").Range("J8").Value = "Tempo trascorso: " & Format(tempoTrascorso, "hh:mm:ss")
End SubPrivate Sub StartTimer()
' Questa funzione aggiorna il tempo ogni secondo
If timerAttivo Then
Dim tempoTrascorso As Double
tempoTrascorso = Now - tempoIniziale
Sheets("previsione").Range("J8").Value = "Tempo trascorso: " & Format(tempoTrascorso, "hh:mm:ss")
End If
End SubAll'inizio della macro metti inizioTimer
Alla fine metti FineTimer
Cella(XX)= fineTimer - InizioTimer
Come ti ha messo Aldo
non capisco come deve essere. me lo puoi copiare nel codice completo? scusami ma non riesco a capire !
Ti faccio un Esempio semplice semplice
Sub Prova() iniz = Time 'Inizio Macro For i = 1 To 100000 Range("A" & i) = i Next 'Fine Macro Fin = Time Range("F1") = Format(Fin - iniz, "hh:mm:ss") End Sub -
AutoreArticoli
