usando una macro per una data non viene rispettata la localizzazione

chiesto il 2018-01-06 18:04:17 +0200

Immagine gravatar per quercia

Ho scritto una macro che copia una data dalla cella di un foglio e la mette nella cella di un altro foglio in cui la formattazione è del tipo data. La cella da cui copio ha la formula:'03/01/2018 (compreso apice iniziale). Andando a copiare la formula in 3 modi diversi (vedi codice) ottengo sempre: "1 mar 18". Se vado a scrivere sulle stesse celle con la tastiera la stringa "03/01/2018" ottengo invece l'espressione corretta "3 gen 18" perchè le mie impostazioni sono italiane. Se le celle vengono preformattate come testo si ottiene invece: "43160" che corrisponde alla data 1 marzo 2018. Sembrerebbe che quando la macro mette il dato si comporti come se la localizzazione fosse USA e non italiana. Aggiungo che la funzione Month (vedi codice) restituisce correttamente il valore 1.

Cella1=oSheet1.getCellByPosition(9,8)'colonna,riga cella da copiare
DatoInEsame=Cella1.String
Cella2=oSheet2.getCellByPosition(7,14)
Cella2.Formula= DatoInEsame
LaData = CDate(DatoInEsame)
Cella2=oSheet2.getCellByPosition(8,14)
Cella2.Formula= LaData
DatoInEsame = Str(LaData)
Cella2=oSheet2.getCellByPosition(9,14)
Cella2.Formula= DatoInEsame
NumMese = Month(LaData)
MsgBox ("Il mese è " & NumMese)

Informazioni su LibreOffice: Versione: 5.1.6.2 Build ID: 1:5.1.6~rc2-0ubuntu1~xenial2 Thread CPU: 4; Versione SO: Linux 4.10; Resa interfaccia: predefinito; Versione locale: it-IT (it_IT.UTF-8); Calc: group

output di locale

LANG=it_IT.UTF-8
LANGUAGE=it_IT
LC_CTYPE="it_IT.UTF-8"
LC_NUMERIC="it_IT.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_COLLATE="it_IT.UTF-8"
LC_MONETARY="it_IT.UTF-8"
LC_MESSAGES="it_IT.UTF-8"
LC_PAPER="it_IT.UTF-8"
LC_NAME="it_IT.UTF-8"
LC_ADDRESS="it_IT.UTF-8"
LC_TELEPHONE="it_IT.UTF-8"
LC_MEASUREMENT="it_IT.UTF-8"
LC_IDENTIFICATION="it_IT.UTF-8"
LC_ALL=
modifica retag flag offensive close merge delete