Ciao Andrea, benvenuto nel forum.
Sei stato un po' povero nel descrivere la cosa, quindi mi invento qualcosa io...
Su un foglio del tuo file, segna in colonna C la durata assegnata; usa colonna A e B per altre descrizioni a piacere.
Nella colonna D calcoleremo il tempo accumulato, sulla base di uno "switch" che metteremo in colonna F: 1=Incrementa, <>1 Non Incrementare
Il colonna E puoi calcolare la differenza tra colonna C e colonna D; eventualmente usi la formattazione condizionale per colorare se la cella assume valori inferiori a una soglia a tuo piacere.
Fai questo a partire dalla riga 2, per quante righe ti servono.
Di questo stesso foglio useremo la cella AA1 per scopi di servizio.
A questo punto premi Alt-F11 per accedere all'editor delle macro. Identifica il modulo "Questa Cartella di Lavoro", aprilo e inseriscici questo codice:
- Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets(AA1Sh).Range("AA1") > Now Then
Application.OnTime Now + TimeValue("00:00:01"), Procedure:="OneSec", schedule:=False
End If
End Sub
Private Sub Workbook_Open()
lastT = Now
Application.OnTime Now + TimeValue("00:00:01"), "OneSec"
End Sub
Per identificare i Moduli delle macro guarda qui:
viewtopic.php?f=26&t=103893&p=622593#p622593Poi inserisci un nuovo Modulo: Menu /Inserisci /Modulo. In questo nuovo Modulo copiaci questo secondo codice:
- Codice: Seleziona tutto
Public AA1Sh As String
Public lastT As Double
Sub OneSec()
'
AA1Sh = "Foglio2" '<<< Il foglio su cui si lavora
'
If ThisWorkbook.Sheets(AA1Sh).Range("AA1") <= Now Then
lastn = Now
ThisWorkbook.Sheets(AA1Sh).Range("AA1") = lastT + TimeValue("00:00:01")
Application.OnTime lastT + TimeValue("00:00:01"), "OneSec"
Beep
End If
With ThisWorkbook.Sheets(AA1Sh)
For I = 2 To .Cells(Rows.Count, "C").End(xlUp).Row
If .Cells(I, "F") = 1 Then .Cells(I, "D") = .Cells(I, "D") + Now - lastT
Next I
End With
lastT = Now
End Sub
Personalizza la riga marcata <<< col nome del foglio di lavoro su cui hai inserito i progetti e le altre cose.
A questo punto salva il file (deve essere salvato nel formato ".xlsm", macro enabled); chiudilo e riaprilo.
Dovresti sentire ogni secondo un Beep, e per i progetti presenti, la colonna E viene incrementato periodicamente del tempo trascorso, se la colonna F indica 1.
Il conteggio parte all'apertura del file, e si interrompe quando il file si chiude.
Il Beep serve solo per il test; una volta che hai capito come funziona puoi cancellare la relativa istruzione nel Modulo1
Prova e vedi se puo' essere di tuo interesse