Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
Conto alla Rovescia di Mimmo (utente non iscritto) data: 30/12/2014 09:48:19
Salve Buon Giorno a tutti mi chiamo Domenico.
Avrei bisogno di un aiutino per risolvere un problema che espongo:
In Excel versione 2007 ho la cella A1 con scritto una data iniziale esempio 01/08/2014 poi nella cella A2 ho inserito con un codice macro l'ora corrente in formato dinamico (h.m.s) quindi quando apro il foglio vedo trascorrere i secondi minuti e ora, poi nella cella A3 ho inserito un'altra data tipo 01/08/2015 ed alla cella A4 ho inserito un orario fisso tipo 20.00.00 (h.m.s.) vorrei una funzione o un codice che mi permettesse di calcolare la differenza tra le celle (A1+A2)-(A3+A4) il risultato trasformato in h.m.s. e lo stesso proceda ad un conto alla rovescia, ed un risultato che trasformi il tutto in soli secondi e che faccia lo stesso il conteggio alla rovescia. Io non so se sia fattibile scrivere un codice del genere chiedo lumi. Ringrazio tutti coloro che risponderanno al mio quesito e Auguri di Buon anno a tutti
di lepat (utente non iscritto) data: 30/12/2014 10:24:26
tutto questo senza allegare il tuo file ?
di Mimmo (utente non iscritto) data: 30/12/2014 11:13:37
Scusami ho allegato il file. Grazie ancora.
di Mister_x (utente non iscritto) data: 30/12/2014 11:32:42
ciao
in A1 la tua data
B1=ORARIO.VALORE(TESTO(ADESSO();"hh.mm.ss")) formattato hh.mm.ss
C1 seconda data
D1 orario
E1=ASS((A1+B1)-(C1+D1))
in un modulo di classe
Sub Tempo()
DoEvents
Calculate
Application.OnTime Now + TimeSerial(0, 0, 1), "Tempo"
End Sub
allego file
Sub Tempo()
DoEvents
Calculate
Application.OnTime Now + TimeSerial(0, 0, 1), "Tempo"
End Sub
di Mister_x (utente non iscritto) data: 30/12/2014 11:44:54
riciao
mi sono dimentica di dirti che normalmente in questo calcolo si utilizza la funzione OGGI()
nel tuo caso in A1=OGGI()
PS guarda la formattazione in E1
in F1 basta che metti come formattazione ss
riciao
di Mimmo (utente non iscritto) data: 30/12/2014 12:18:48
LA CELLA B1 e E1 =ORARIO.VALORE(TESTO(ADESSO();"hh.mm.ss")) e =ASS((A1+B1)-(C1+D1)) EXCEL 2007 rivela errore valore! che problema avrò? grazie ancora
di Mister_x (utente non iscritto) data: 30/12/2014 13:17:04
cioa
visionato il tuo file
nel tuo caso ti ritorna in B2 un valore sotto forma di testo dato che utilizzi la funzione Format()
Foglio1.Range("B2").Value = Format(Now, "hh.mm.ss")
in questo caso in E2 devi inserire la seguente formula
=ASS((A2+ORARIO.VALORE(B2))-(C2+D2)) la formattazione e' [h].mm.ss
in F2
=E2 formattazione ss
la funzione ASS() serve per visualizzare trasformare i valori negativi in positivi , orario negativo e' impossibile visualizzarlo ###############
se invece vuoi utilizzare in
E2=ASS((A2+B2)-(C2+D2))
devi trasformare la tua funzione Format() con TimeValue