Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #51536 Score: 0 | Risposta

    mauri27
    Partecipante

      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 Boolean

      Private Sub Workbook_Open()
      startTime = Now
      timerRunning = True
      UpdateTimer
      End Sub

      Sub UpdateTimer()
      If timerRunning Then
      Dim elapsedTime As Double
      elapsedTime = Now - startTime

      Dim totalSeconds As Long
      totalSeconds = CLng(elapsedTime * 86400) ' Converte in secondi

      Dim hours As Long
      Dim minutes As Long
      Dim seconds As Long

      hours = totalSeconds \ 3600
      minutes = (totalSeconds Mod 3600) \ 60
      seconds = totalSeconds Mod 60

      Worksheets("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 Sub

      Sub StopTimer()
      timerRunning = False
      End Sub

      #51537 Score: 0 | Risposta

      LucaSR
      Partecipante
        15 pts

        Ciao 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.

         

        #51538 Score: 0 | Risposta

        Aldo Ercolini
        Partecipante
          19 pts

          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"
          #51539 Score: 0 | Risposta

          mauri27
          Partecipante

            grazie Aldo, mi puoi dar eil codice cosi lo copio in vba?

             

            #51540 Score: 0 | Risposta

            mauri27
            Partecipante

              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 Boolean

              Private Sub Workbook_Open()
              ' All'apertura del file, inizia il conteggio del tempo
              tempoIniziale = Now
              timerAttivo = True
              Call StartTimer
              End Sub

              Private 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 Sub

              Private 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 Sub

              #51541 Score: 0 | Risposta

              Oscar
              Partecipante
                45 pts

                All'inizio della macro metti inizioTimer

                Alla fine metti FineTimer 

                Cella(XX)= fineTimer - InizioTimer  

                Come ti ha messo Aldo

                #51542 Score: 0 | Risposta

                mauri27
                Partecipante

                  non capisco come deve essere. me lo puoi copiare nel codice completo? scusami ma non riesco a capire !

                   

                  #51544 Score: 0 | Risposta

                  Oscar
                  Partecipante
                    45 pts

                    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
                    #51545 Score: 0 | Risposta

                    mauri27
                    Partecipante

                      ok 

                      ma adesso vedo il problema . perche dice questo? ho tutto attivato nelle opzioni di excel delle impostazioni macro. non so altro che fare. ho office 2024 da pochi giorni ma macro sono abilitate 

                       

                      Allegati:
                      You must be logged in to view attached files.
                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: timer
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: