Se Windows genera un errore, hai un problema di virus o vuoi discutere/segnalare l'uscita della nuova versione di un software per la piattaforma Microsoft, questa è la sezione giusta.
nella quale bisogna incollare un numero decimale copiato da un sito
Questo numero decimale è espresso con il punto (1.49)
Calc/Excel utilizzano il locale italiano e si aspettano i decimali separati da virgola (1,49)
quando incolli il valore con il punto, si imbananano e non lo riconoscono
Ho già provato a forzare il formato della specifica cella:
Così funziona, ma se chiudi il file e lo riapri si perde il settaggio.
Sapete se c'è un modo per forzare il locale sullo specifico foglio o, in generale, come gestire la cosa?
Vorrei TANTO evitare le macro, se possibile.
Sono su Windows 10 x64 e ho già provato ad aggiornare a LibreOffice 5.4.4 x64.
Aggiornamento: grazie a chi mi ha risposto consigliando di modificare l'impostazione regionale del sistema operativo oppure del programma. Il problema è però che questo foglio di calcolo è disponibile a pubblicamente, e non posso chiedere che le persone interessate ad usarlo modifichino questa impostazione sui propri PC. Bisogna che troviamo un modo specifico e salvato all'interno del file per forzare l'uso del formato.
Ciao Zane,
non credo esista un modo semplice/elegante per fare quello che ti serve: in Excel le impostazioni dei separatori sono locali all'ambiente di lavoro e non vengono salvate col documento.
Probabilmente la cosa migliore sarebbe di forzare un cambio dei separatori all'apertura del documento con questo codice VBA:
Private Sub Workbook_Open()
Application.DecimalSeparator = "."
Application.ThousandsSeparator = ","
Application.UseSystemSeparators = False
End Sub
In questo modo l'intero documento userebbe il "." come separatore decimale e tutti i problemi sarebbero risolti (non solo per il copia/incolla "nel" foglio, ma anche per il copia/incolla "dal" foglio).
Poi, per buona educazione, è il caso di risistemare tutto prima della chiusura del documento:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.UseSystemSeparators = True
End Sub
Tuttavia sono d'accordo con te:
Zane ha scritto:Vorrei TANTO evitare le macro, se possibile.
l'attivazione delle macro potrebbe dare agli utenti la falsa sensazione che il tuo documento faccia cose "nascoste" a loro insaputa.
Come "second best" credo che la migliore alternativa sia di:
impostare le due caselle di input come testo generico (in questo modo Excel non si prenderà il disturbo di convertirle in numero prendendo delle cantonate),
definire due nomi (ad es. "capitale" e "prezzo") che si occupino di sostituire la "," al "." solo se necessario e di usarli nei calcoli successivi al posto dei riferimenti diretti alle celle.
In questo modo, indipendentemente dal separatore decimale inserito nelle caselle di input, nei nomi "capitale" e "prezzo" avrai un valore numerico correttamente separato da ",".
Questo metodo, rispetto al precedente, ha diverse falle:
rimane il problema di copiare/incollare i numeri separati da "," dal foglio al sito web che si aspetta "." come separatore,
può funzionare solo se il documento viene usato in Italia (o negli altri paesi che usano la virgola come separatore decimale),
funziona solo per valori < 1000 (se entra in gioco anche il separatore delle migliaia, le formule consigliate ovviamente non funzionano più).
Ciao, Pippo.
N.B.: Dimenticavo... quanto detto (entrambi i metodi) vale per Excel! Il secondo potrebbe funzionare anche in Calc (ma non l'ho provato), il primo sicuramente no.
Ho seguito il vostro suggerimento di lasciare il campo di input come testo, fare la sostituzione in una cella di lavoro, svolgere i calcoli su quelle e riconvertire i numeri prima di mostrarli all'utente.
Come diceva PippoDJ rimane la sfiga che funziona solo se l'utente ha impostato il programma nel formato italiano classico ("virgola" come separatore di decimali), ma per il nostro pubblico di riferimento dovrebbe essere OK così.
Se volete provare il foglio aggiornato e darmi un feedback, vi ascolto molto volentieri.
Zane ha scritto:Se volete provare il foglio aggiornato e darmi un feedback, vi ascolto molto volentieri.
funziona bene in Excel 2013, ma dà problemi in OpenOffice Calc 4.1.1 e 3.3.0.
In OpenOffice Calc è necessario convertire esplicitamente da "testo" a "numero" anche se la cella ha formato numerico.
Dovresti risolvere sostituendo
Grazie di nuovo PippoDJ! Io ho LibreOffice 5.4.4.2 e con questa versione mi funzionava OK. Ho comunque modificato come da tuo suggerimento, così lo rendiamo compatibile anche con le vecchie versioni. Mi fai un ultimo check per favore?
Inserendo un messaggio, dichiari di aver letto e accettato il regolamento di partecipazione.
Nello specifico, sei consapevole che ti stai assumendo personalmente la totale responsabilità delle tue affermazioni, anche in sede civile e/o penale,
manlevando i gestori di questo sito da ogni coinvolgimento e/o pretesa di rivalsa.
Dichiari inoltre di essere consapevole che il messaggio sarà visibile pubblicamente, accetti di diffonderlo con licenza
CC BY-NC-SA 3.0 (con attribuzione a "TurboLab.it") e rinunci ad ogni forma di compensazione (economica o altro).
Rinunci inoltre esplicitamente a qualsiasi pretesa di cancellazione del messaggio.