Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
LibreOffice - Estrazione Data ed Ora da Data/ora VBA
Nuovo argomento   Rispondi    Indice del forum -> Office e LibreOffice
Precedente :: Successivo  
Autore Messaggio
alessandrov
Comune mortale
Comune mortale


Registrato: 31/03/20 23:13
Messaggi: 3

MessaggioInviato: 31 Mar 2020 23:20    Oggetto: LibreOffice - Estrazione Data ed Ora da Data/ora VBA Rispondi citando

Salve,
sto utilizzando le macro VBA di libreoffice per estrarre data "dd/mm/aaaa" ed ora "hh:mm:ss" da un campo data/ora "dd/mm/aaaa hh:mm:ss".
Per questo ho utilizzato il seguente codice:

xlsSheetReport.Range("B" & TableIndexL).Value = CDate(FormatDateTime(Range("B" & i).Value, vbShortDate))
xlsSheetReport.Range("C" & TableIndexL).Value = FormatDateTime(Range("B" & i).Value, vbLongTime)

Utilizzando il vbLongTime, per estrarre l'ora, ho notato che delle volte i secondi non corrispondono per un unità Shocked .
Elaborando per esempio "20/03/2020 09:43:06", l'ora estratta col vbLongTime è "09:43:05".

Avete mai riscontrato questo problema?
Esistono altre funzioni con il quale posso estrarre l'ora in modo preciso?
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 10677
Residenza: Tokelau

MessaggioInviato: 01 Apr 2020 13:54    Oggetto: Rispondi citando

le date/ore in excel sono memorizzate come dei numeri frazionari quindi ci potrebbero sempre essere errori di approssimazione...

altrimenti usi testo ma a quel punto devi tenere d'occhio il formato, se no sono guai

se però il formato iniziale è testo, puoi semplicemente separare le due parti (data e ora) trovando dove sta lo spazio...
Top
Profilo Invia messaggio privato HomePage
alessandrov
Comune mortale
Comune mortale


Registrato: 31/03/20 23:13
Messaggi: 3

MessaggioInviato: 01 Apr 2020 14:30    Oggetto: Rispondi citando

In realtà il dato sorgente l'ho provato a cambiare anche manualmente, evitando errori di appossimazione. ll risultato comunque è lo stesso.
Probabilmente la soluzione più immediata, come tu suggerisci, è utilizzare lo split con il carattere spazio, oppure utilizzare i comandi right e left per prendersi la data e l'ora.
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 10677
Residenza: Tokelau

MessaggioInviato: 02 Apr 2020 12:32    Oggetto: Rispondi citando

l'altra ipotesi, un po' più perversa, è che la risoluzione del tipo shortDate sia a 2 secondi, come è in altri linguaggi di programmazione

l'effetto è che le date vengono fuori tutte con i secondi pari, anche quando sono dispari

se provi a fare la conversione al tipo data (CDate) senza passare dal formato shortDate, cambia qualcosa?
Top
Profilo Invia messaggio privato HomePage
alessandrov
Comune mortale
Comune mortale


Registrato: 31/03/20 23:13
Messaggi: 3

MessaggioInviato: 03 Apr 2020 09:06    Oggetto: Rispondi citando

In realtà, come scritto nel primo post, l'ora restituita con vbLongTime era dispari invece che pari. Il problema me lo da su vbLongTime, non su shortDate.
Comunque ho risolto facendo lo split con gl spazi e prendendo array (0) come data e array (1) come ora.
Probabilmente è qualche limitazione di libreoffice?!
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 10677
Residenza: Tokelau

MessaggioInviato: 03 Apr 2020 10:49    Oggetto: Rispondi

onestamente non so dirti, ma era proprio perché lo shortDate aveva i secondi pari che mi suggeriva che fosse un problema di risoluzione del formato breve - ma può essere di no

bene che hai risolto con uno split, che se parti da una stringa e vuoi due stringhe alla fine direi che è la soluzione più efficiente

Ciao
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Office e LibreOffice Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi