cronometro con tempi parziali
Hai un problema con Excel? 
cronometro con tempi parziali
di twd (utente non iscritto) data: 24/04/2015 10:39:31
un saluto a tutto il forum...e ben ritrovati.......
volevo sapere se sei puo realizzare una sorta di cronometro manuale con vba...mi spiego......
faccio il cronometrista alle gare di running......allora quando passano i corridori vorrei aprire un file excel e cliccare su un pulsante
e che nelle celle da a1 ad a 500 il sistema mi memorizzi l'ora esatta di passaggio di ogni concorrente...tipo 10:48:58.470
non l'ora di start, ma l'ora del passaggio davanti a me...
praticamente se me ne passano davanti 50 ragazzi io cliccherò 50 volte il bottone.....e incolonnerà i tempi di passaggio...
il formato sarà ora:minuto:secondo.decimo e il tempo sarà memorizzato nelle celle a1,a2,a3.....ecc....
si puo ? un saluto e grazie mille.
di Lucas87 data: 24/04/2015 11:25:38
Ciao
Se ti accontentassi di avere i secondi si potrebbe fare.
L'orario di sistema non comprende i decimi di secondo
di Lucas87 data: 24/04/2015 11:27:06
Hai provato a cercare in rete qualche software che possa fare al caso tuo?
Magari non che importi i valori in excel, quello lo puoi fare a mano in un secondo momento.
di Traniwebdesign data: 24/04/2015 11:49:29
i decimi me li metto ad occhio dai...
si puo fare con l'orario di sistema ?
di brontolo (utente non iscritto) data: 24/04/2015 12:12:48
Con l'orario di Sistema, puoi dare uno sguardo al File Cronometro con tempi parziali (2010).zip
di Traniwebdesign data: 24/04/2015 12:21:19
si , visto grazie mille...ma i decimi non li da ?
di brontolo (utente non iscritto) data: 24/04/2015 12:24:19
@ Traniwebdesign
Edit. i decimi me li metto ad occhio dai...
di Mister_x (utente non iscritto) data: 24/04/2015 13:12:39
ciao
con millesimi
file allegato Millesimi.xlsm
PS si intende come esempio di utilizzo
Bottoni inseriti
Start Stop Passaggi Azzerapassaggi
ciao
''Modulo di classe
Option Explicit
Public Declare Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long) As Long
Public TimerID As Long
Public TimerSeconds As Single
Sub StartTimer()
TimerSeconds = 0.01 ' how often to "pop" the timer.
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub
Sub EndTimer()
On Error Resume Next
KillTimer 0&, TimerID
End Sub
Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
ByVal nIDEvent As Long, ByVal dwTimer As Long)
DoEvents
On Error Resume Next
Cells(1, 1) = Timer / 86400 ''mettere / 86400
Cells(1, 2) = Date
End Sub
''Modulo del foglio
Option Explicit
Sub Passaggi()
On Error Resume Next
Range("A" & Cells(Rows.Count, "A").End(xlUp).Row + 1).NumberFormat = " hh:mm:ss.000"
Range("A" & Cells(Rows.Count, "A").End(xlUp).Row + 1) = Range("A1")
End Sub
Sub AzzeraPassaggi()
Range("A4:A100000").ClearContents
End Sub
|
di brontolo (utente non iscritto) data: 24/04/2015 21:11:17
Sperando che Mister_x non me ne voglia, da ex cronometrista, mi sono divertito a cercare una soluzione alternativa.
In sostanza, nel File Cronometro con tempi parziali Rev 01.zip, dopo aver fatto partire il Timer tramite il Pulsante "Start", digitando nella cella "B2" il numero di pettorale, verrà indicato il tempo di passaggio.
di twd (utente non iscritto) data: 27/04/2015 08:12:19
grazie a tutti...ma come faccio che ogni volta il debugger mi dice che devo inserire ptrsafe ????
di brontolo (utente non iscritto) data: 27/04/2015 11:48:22
Cit. @ twd:
...ma come faccio che ogni volta il debugger mi dice che devo inserire ptrsafe ????
Ma, hai provato il File:
- File Cronometro con tempi parziali Rev 01.zip
Non mi sembra che richieda l'inserimento che menzioni.
Basta far partire il Timer tramite il Pulsante "Start", digitando nella cella "B2" il numero di pettorale, verrà indicato il tempo di passaggio.
Colgo l'occasione per ribadire il mio apprezzamento per la soluzione di Mister_x
brontolo
di twd (utente non iscritto) data: 27/04/2015 12:22:35
certo che ho scaricato quello.......
io ho win 8 64 bit.........non è che è per quello ?
ps. pure office è a 64 bit....
di Mister_x (utente non iscritto) data: 27/04/2015 15:08:27
ciao
mai usato la versione a 64bit e penso di non usarla mai
comunque mi sembra di ricordare che bisogna cambiare la dichiarazione della funzione
fai la prova sostituisci in modulo1 le dichiarazioni delle funziomi
SetTimer e KillTimer
con queste e vediamo cosa succede
ciao
Per Brontolo, grazie per il riscontro
Public Declare PtrSafe Function SetTimer Lib "user32" ( _
ByVal HWnd As LongLong, _
ByVal nIDEvent As LongLong, _
ByVal uElapse As LongLong, _
ByVal lpTimerFunc As LongLong) As LongLong
Public Declare PtrSafe Function KillTimer Lib "user32" ( _
ByVal HWnd As LongLong, _
ByVal nIDEvent As LongLong) As LongLong
|
di Mister_x (utente non iscritto) data: 27/04/2015 15:24:53
riciao
ho visto adesso che la versione da te installata e' la 2010 e non la 2013
quindi mi sembra che questi non supporta la LongLong ma solo Long
la modifica quindi e solamente di aggiungere PtrSafe
riciao
Public Declare PtrSafe Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long ''se necessario sostituire con LongPrt
Public Declare PtrSafe Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long) As Long '' anche questo con LongPrt
|
Vuoi Approfondire?