Newsgroup: it.comp.lang.visual-basic
Titolo: Cronometro in excel

Devo implementare un cronometro (con decimi, o meglio centesimi di sec.)
visibile in un foglio excel, con pulsanti start e stop (e soprattutto con la
possibilità, alla pressione di un tasto, di inserire in una determinata
cella, di cui si dà l'indice, il valore del cronometro in un dato istante.)
Il tutto mi serve x gestire una gara di corsa...
Spulciando vecchi messaggi su altri NG ho trovato questo:
http://disciplus.simplex.free.fr/xl/exemples/fsdm-chrono.zip
che sembrava fare al caso mio ma in realtà non è affatto affidabile, basta
muovere qualche finestra o aspettare un pò che perde fior di secondi! :(
sapete dove posso trovare qualcosa che faccia al caso mio?
Anche semplici suggerimenti...
Grazie mille
--
S.

 Grazie mille

 (
http://www.it-lang-vb.net/home.asp
) cercando ESP0CRON
Ti ringrazio ma, a parte che non saprei come utilizzarlo in excel, ho fatto
una prova e ho visto che anche questo non è molto affidabile... dopo 30
minuti era in ritardo di circa 4 secondi!!!
Grazie comunque

 ha scritto nel messaggio
news:k41Ob.257700$vO5.10...@twister1.libero.it...

Certo, usando un Timer non puoi avere precisione: se l'intervallo del Timer
è per esempio 100 millisecondi, vuol dire che ogni 100 millisecondi viene
scatenato l'evento Timer, il quale contiene del codice che deve essere
elaborato e che quindi ritarda il prossimo evento Timer, ecc.
In un' applicazione che ho fatto per usare Pocket PC come cronometro, ho
fatto in questo modo:
- uso l'API GetTickCount() che ritorna il numero di millisecondi trascorsi
da quando il sistema è stato avviato;
- alla pressione del bottone Start salvo in una variabile il valore che
ritorna lngStartTick = GetTickCount();
- con un Timer, di tanto in tanto (magari anche solo ogni secondo) vado a
vedere quanti millisecondi sono trascorsi da quando ho avviato il
cronometraggio (GetTickCount() - lngStartTick) e lo visualizzo;
- alla pressione del bottone Stop leggo nuovamente la quantità di
millisencondi trascorsi e visualizzo definitivamente il tempo trascorso.
Ciao!
Esteban

 fatto in questo modo:
Scusa l'ignoranza, prima di perdere tempo a studiare qualcosa che poi magari
non mi servirà, tutto ciò è applicabile ad excel? In parole povere, se mi
studio un pò il vba posso fare ciò che hai fatto tu?
Altra cosa, non ho capito bene se nel modo che hai usato tu viene
visualizzato il tempo mentre scorre o solamente una volta premuto il tasto
"stop".
Grazie mille
--
s.

 ha scritto nel messaggio
news:_pbOb.258542$vO5.10...@twister1.libero.it...

Le API le puoi usare anche in VBA. In un modulo devi aggiungere la seguente
dichiarazione:
Public Declare Function GetTickCount Lib "kernel32" _
    Alias "GetTickCount" () As Long
Poi, all'avvio del cronometraggio definisci una variabile pubblica di tipo
Long a cui assegni il valore ritornato dalla funzione GetTickCount.
Ogni volta che vuoi sapere quanto tempo è trascorso, basta che togli dal
valore che ritorna GetTickCount il valore memorizzato nella variabile
all'avvio del cronometraggio: così ottieni il numero di millisecondi
trascorsi fino a questo momento e poi con un semplice calcolo trovi
ore:minuti:secondi,millesimi.
Quindi, se definisci un Timer con Intervall pari a 500 millisecondi il quale
contiene il codice per aggiornare una label con il risultato di cui sopra,
ottieni l'effetto di visualizzazione del tempo che scorre ogni mezzo
secondo.
Ciao!
Esteban