sommatoria ore



  • sommatoria ore
    di skiro data: 15/03/2016 14:58:00

    buongiorno,
    mi trovo ad affrontare un problema banale, ma utilizzando le precedenti discussioni non sono riuscito a risolvere:
    mi trovo a sommare una serie di dati incolonnati in una tabella formattati come categoria Ora hh:00

    per ora li ho inserti in una variabile tipo 'date' ma se la sommatoria risultasse maggiore di 24 il risultato che ottengo è: ore ma per ogni blocco di 24 (ore) mi aggiunge 1 giorno dall'inizio del calendario di Excel.
    se la sommatoria fosse 25 mi da come risultato 1
    se la sommatoria fosse 26 mi da come risultato 2
    se la sommatoria fosse 49 mi da come risultato 1
    ecc. ecc.

    io vorrei la sommatoria aritmetica delle ore. come posso aggirare il problema?
    quando utilizzo la funzione:
    OreArt3 = Format(OreArt3, "h:mm")
    non ha nessun effetto poichè è per una variabile di tipo string. giusto?

    un saluto a tutto il forum!




  • di patel data: 15/03/2016 15:44:54

    allega un file di esempio





  • di skiro data: 15/03/2016 16:23:10

    ho allegato un esempio sintetizzato.
    sulla user form mi appaiono due valori:
    corretti se inferiori alle 24 ore
    sbagliati se superiori.

    stessa cosa sul foglio di calcolo.

    grazie saluti



  • di Mister_x (utente non iscritto) data: 15/03/2016 17:53:56

    ciao

    F46 e F47 formato cella
    personalizzato
    [h]:mm

    ciao





  • di skiro data: 16/03/2016 11:16:06

    ok. a livello di foglio di calcolo è perfetto. Ora la sommatoria può superare le 24 ore.
    ma appena il dato viene associato ad una variabile di tipo Date e la scrivo in una etichetta, ritorno ad avere la formattazione tipo "gg/mm/aaaa hh:mm" con i valori riferiti all'inizio del calendario di Excel.




  • di Albatros54 data: 16/03/2016 12:00:59

    Prova a modificare ed aggiungere le righe di codice che ti posto, alla fine della Sub giorniLavorati().
    Ciao.

     
    Next
    
    
    TotaleOreOreAnnoart30 = Int(OreAnnoart30 * 24) & ":" _
    & Format((((OreAnnoart30 * 24) - _
    Int(OreAnnoart30 * 24)) * 60), "00")
    
    TotaleOreOreAnnoPermessRetr = Int(OreAnnoPermessRetr * 24) & ":" _
    & Format((((OreAnnoPermessRetr * 24) - _
    Int(OreAnnoPermessRetr * 24)) * 60), "00")
    
    UserForm1.Label28.Caption = TotaleOreOreAnnoart30
    UserForm1.Label31.Caption = TotaleOreOreAnnoPermessRetr
    End Sub






  • di skiro data: 16/03/2016 12:51:48

    ci siamo:

    le variabili
    TotaleOreOreAnnoart30
    TotaleOreOreAnnoPermessRetr
    le ho impostate come string

    funziona, ma ho provato ad impostare come sommatoria di ore solo 2:00 e mi scrive sulla
    UserForm1.Label31.Caption = TotaleOreOreAnnoPermessRetr "1:60"

    vorrei provare a sistemarlo da solo.
    non so se ci riesco, in caso positivo posto il codice aggiornato.
    grazie mille!!
    un saluto






  • di skiro data: 16/03/2016 14:19:37

    così funziona:

    dichiarato a e c variabili tipo integer  
     
    TotaleOreOreAnnoPermessRetr = Int(OreAnnoPermessRetr * 24) & ":" _
    & Format((((OreAnnoPermessRetr * 24) - _
    Int(OreAnnoPermessRetr * 24)) * 60), "00")
    
    a = Int(OreAnnoPermessRetr * 24)
    c = (((OreAnnoPermessRetr * 24) - Int(OreAnnoPermessRetr * 24)) * 60)
    If c = 60 Then
    a = a + 1
    c = 0
    TotaleOreOreAnnoPermessRetr = a & ":" & Format(c, "00")
    
    
    UserForm1.Label28.Caption = TotaleOreOreAnnoart30
    UserForm1.Label31.Caption = TotaleOreOreAnnoPermessRetr
    
    End If



  • di Mister_x (utente non iscritto) data: 16/03/2016 16:24:23

    ciao

    perché tutti quei calcoli matematici inutilmente ???? quando basta riportare le celle F46 e F47 come testo

    altra cosa , se nel calcolo e' presente la mezz'ora e minuti da 1 a 59 non ti viene riportato
    con la mia sub() postata SI

    ciao
     
    Public Sub giorniLavorati()
      UserForm1.Label28.Caption = Range("F46").Text
      UserForm1.Label31.Caption = Range("F47").Text
    End Sub






  • di Albatros54 data: 16/03/2016 17:26:12

    @Mister_x:
    alle volte ci piace complicarci la vita