Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Modulo per trasformare da Ore+Minuti in secondi

425 views
Skip to first unread message

Bruno - S95

unread,
Dec 21, 2003, 5:34:20 AM12/21/03
to
A97.

Qualquno puņ aiutarmi. Grazie...Bruno

Non riesco a far funzionare questa funzione, in quanto conosco poco o nulla
il VBA.
Vorrei poter trasformare le ore e i minuti (es. 10.25) in secondi.

'Questa Funzione converte le ore pił i minuti in secondi nel formato
numerico
Public Function ConvInSec(Ore)
Dim Secondi As Integer
Dim Sec As Integer


Secondi = Sec

Sec = Hour((Ore) * 60) + Minute((Ore) * 60)

End Function

________

In realtą, l'ideale sarebbe poter effettuare la trasformazione in secondi e
in ore, direttamente dal seguente modulo che ritoccandolo sono riuscito a
far restituire le ore anche in negativo, manca solo il passaggio per
trasformare le ore (es. 10.20) in secondi per poi continuare con gli altri
calcoli.

'Questa Funzione converte i secondi nel formato hh.mm.ss
Public Function ConvertiBis(numSecondi As Long) As String
Dim Ore, Minuti, Secondi As Byte
Dim strOre, strMinuti, strSecondi As String
Dim Orario As String

Ore = 0
Minuti = 0
Secondi = 0
strOre = "00"
strMinuti = "00"
strSecondi = "00"

'If numSecondi > 86400 Then
'Converti = "pił di un giorno"
'Exit Function
'End If

If numSecondi > 3599 Then
Ore = numSecondi \ 3600
strOre = Format(Ore, "00")
numSecondi = numSecondi - (3600 * Ore)
ElseIf numSecondi < 3599 Then
Ore = numSecondi \ 3600
strOre = Format(Ore, "00")
numSecondi = numSecondi - (3600 * Ore)
End If


If numSecondi > 59 Then
Minuti = numSecondi \ 60
strMinuti = Format(Minuti, "00")
numSecondi = numSecondi - (60 * Minuti)
ElseIf numSecondi < 59 Then
Minuti = numSecondi \ 60
strMinuti = Abs(Format(Minuti, "00"))
numSecondi = numSecondi - (60 * Minuti)
End If


If numSecondi > 0 Then
Secondi = numSecondi
strSecondi = Format(Secondi, "00")
ElseIf numSecondi < 0 Then
Secondi = numSecondi
strSecondi = Abs(Format(Secondi, "00"))
End If

ConvertiBis = strOre & "." & strMinuti '& "." & strSecondi
End Function

---------
Ancora grazie da Bruno.


TheMax

unread,
Dec 21, 2003, 6:43:47 PM12/21/03
to
"Bruno - S95" <bruno...@tin.it> ha scritto nel messaggio
news:MGeFb.21135$wM.17...@news1.tin.it...
> A97.
>
> Qualquno puň aiutarmi. Grazie...Bruno

>
> Non riesco a far funzionare questa funzione, in quanto conosco poco o
nulla
> il VBA.
> Vorrei poter trasformare le ore e i minuti (es. 10.25) in secondi.
>
> 'Questa Funzione converte le ore piů i minuti in secondi nel formato

> numerico
> Public Function ConvInSec(Ore)
> Dim Secondi As Integer
> Dim Sec As Integer
>
>
> Secondi = Sec
>
> Sec = Hour((Ore) * 60) + Minute((Ore) * 60)
>
> End Function

[..CUT]

Questa dovrebbe funzionare. Al posto della prima funzione che NON puň andare
perchč:
1) Non č valorizzata mai
2) Il calcolo č errato

Public Function ConvInSec(Ore) As Long

ConvInSec = (Hour(Ore) * 60 * 60) + (Minute(Ore) * 60)

End Function

La seconda funzione (ConvertiBis) mi sembra funzionare correttamente.

--
web: www.piubelli.net
Vuoi il mio indirizzo? Togli _cut_ per rispondermi

Bruno - S95

unread,
Dec 22, 2003, 3:22:12 PM12/22/03
to

"TheMax" <elpiub...@yahoo.it> ha scritto nel messaggio
news:bs5b8h$iqi$1...@atlantis.cu.mi.it...
>--------------
Mille grazie e tanti auguri.
Funziona.
Ciao .. Bruno
>


TheMax

unread,
Dec 22, 2003, 5:59:18 PM12/22/03
to
"Bruno - S95" <bruno...@tin.it> ha scritto nel messaggio
news:UnIFb.27071$wM.21...@news1.tin.it...
>
CUT

> Mille grazie e tanti auguri.
> Funziona.
> Ciao .. Bruno

Di nulla, l'avevo già fatta simile.
Tanti auguri anche a te.

Ciao,
Massimo

0 new messages