Newsgroup: it.comp.appl.access
Titolo: Esportare in Excel da query/report dati ora in formato testo formattandoli in [hh].mm per excell

Access 2003/2010
 
Salve, ho provato ad esportare in excel  i dati orari sia di una query che 
di un report . Questi dati sono orari formattati con la sottostante 
function.
Quando vengono esportati sono visualizzati perfettamente, esempio 155.50, ma 
in formato testo. Se vado in trova e sostituisci di excell e imposto di 
trovare il . (puno) e sostituirlo con : (due punti), dopo la sostituzione 
viene riconosciuto automaticamente il valore orario da excel. Come mai? Come 
posso risolvere il problema esportando i dati e facendoli formattare in modo 
che excell li riconosca da subito come formato [HH].mm
Preciso che nella funzione ho provato a sostituire il punto con i due punti 
per la formattazione finale del dato orario, ma il risultato � il medesimo; 
lo esporta con i due punti e poi gli devo dire di trovare i due pinti e 
sostituirli con i due punti, quindi mi da il formato [HH].mm, o meglio 
[HH].mm.ss
 infatti aggiunge 00 per i secondi.
 
Grazie, Bruno
 
 
-------------------------------
 
Option Compare Database
Option Explicit
 
'Questa Funzione converte i secondi nel formato hh.mm.ss
Public Function OreMinSec(numSecondi As Long) As Variant
 
    Dim Ore, Minuti, Secondi As Byte
    Dim strOre, strMinuti, strSecondi As String
    Dim Orario As String
 
 
    Ore = Format(0, "00")
    Minuti = Format(0, "00")
    Secondi = Format(0, "00")
    strOre = "00"
    strMinuti = "00"
    strSecondi = "00"
 
    'If numSecondi > 86400 Then
        'OreMinSec = "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 = 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 = Format(Secondi, "00")
    End If
 
    If Nz(strOre, 0) < 0 Or Nz(strMinuti, 0) < 0 Or Nz(strSecondi, 0) < 0 
Then
        OreMinSec = "- " & Format(Abs(Nz(strOre)), "00") & "." & 
Format(Abs(Nz(strMinuti)), "00") '& "." & Format(Abs(Nz(strSecondi)), "00")
        Else: OreMinSec = Nz(strOre, 0) & "." & Nz(strMinuti, 0) '& "." & 
Nz(strSecondi,0)
    End If
 
 
End Function
___________________________
 
 

 ha scritto nel messaggio 
news:52149cfa$0$1358$4faf...@reader2.news.tin.it...

^^^^
 
In una queri ho trasformato in minuti tutte le "
hh.mm
" ed ho fatto la somma, 
quindiesportando in excel, o ancora meglio, dopo aver importato i dati in 
excel con Query o ODBC, in altra selezione di celle formattate con [hh].mm 
ho fatto riferimento alle celle contenenti i minuti, ottenendo cos� le ore.
E' un pocchino sporca, ma non sono riuscito a fare di pi�.
Ciao, Bruno