Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao dukeengine,
Grazie Norman,
ho eseguito le tue istruzioni, come difatti anche a te mi risulta nella colonna dei tempi predittivi sempre 00:00,001. In più a me basterebbe avere i tempi dei settori come ss,000 e non come mm:ss,000, sarebbe possibile?
Sostituisci il codice con la seguente versione:
'========>>
Option Explicit
'-------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, rCell As Range
Dim sTime As String
Dim dTime As Double
Dim iSec As Long, iMilliSec As Long, ilen As Long
Const sIntervallo As String = "D7:G106" '<<=== Modifica
Set Rng = Intersect(Me.Range(sIntervallo), Target)
If Not Rng Is Nothing Then
On Error GoTo XIT
Application.EnableEvents = False
For Each rCell In Rng.Cells
With rCell
If Application.IsNumber(rCell.Value) Then
ilen = Len(.Value)
If ilen > 3 Then
iSec = Left(.Value, ilen - 3)
iMilliSec = Right(.Value, 3)
dTime = iSec / 24 / 60 / 60 + iMilliSec / 24 / 60 / 60 / 1000
Else
dTime = .Value / 24 / 60 / 60 / 1000
End If
.NumberFormat = "ss.000"
.Value = dTime
End If
End With
Next rCell
End If
XIT:
Application.EnableEvents = True
End Sub
'<<========
Se introduco i valori con le celle D7:G106 formattate come numero, tre decimali, funziona tutto: predittivi, ideal, somme... Forse mi andrà bene questo formato
[...]
Potresti impostare sia un formato generale che un formato numerico.
anche se non so come fa excel a capire che si tratta di secondi con tre decimali...
Infatti Excel memorizza tutti i tempi come un numero: 24 ore hanno un valore di 1 e qualsiasi tempo inferiore a 24 ore verrà memorizzato come parte decimale di 1. Ad esempio, Excel memorizzerà un secondo come 1.15740740740741E-05 , ossia 0, 0000115740740740741 (=1/24/60/60)
===
Regards,
Norman