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=