Sub MediaDifferenze()
Dim riga As Integer
Dim ptz, arr, difh, difn, ore, minuti As String
riga = ActiveSheet.Range("A65000").End(xlUp).Row 'ultima riga occupata
For i = 2 To riga
'formatta come ore,minuti e secondi il dato nella cella
ptz = FormatDateTime(Cells(i, 1), vbShortTime)
arr = FormatDateTime(Cells(i, 2), vbShortTime)
'esegue la differenza fra i due dati
difh = DateDiff("h", ptz, arr): ore = difh * 60 'per le ore
difn = DateDiff("n", ptz, arr): minuti = difn - ore 'per i minuti meno le ore
'se minuti è inferiore a zero allora sommo 60 e tolgo 1 ora dalle ore
If minuti < 0 Then minuti = 60 + minuti: difh = difh - 1
Cells(i, 3) = difh & ":" & minuti 'scrivo nella cella a fianco il risultato
Next i
'calcola la media oraria della somma delle differenze
Cells(5, 4).FormulaR1C1 = "=AVERAGE(R[-3]C[-1]:R" & riga & "C[-1])"
End Sub |