Ciao Matteo,
per motivi di lavoro gestisco un foglio Excel in Office 365 su win7 64bit nel quale per esempio ho nella colonna P i totali in Euro e nella colonna Q i totali in franchi svizzeri CHF (e in R il tasso di cambio per poi avere il calcolo automatico). Altre
colonne e anche alcune celle singole sono formattate come sterline £.
Ogni due settimane circa Excel mi resetta tutto agli euro, così anche gli importi in CHF o £ vengono visualizzati come €. Per fortuna i valori restano immutati e non perdo dati importanti, ma è comunque una seccatura dover reimpostare tot
colonne in CHF e tot celle in £ (il file è abbastanza complicato).
Sembra che Excel "dimentichi" che certe celle sono formattate in un certo modo e altre in un altro. I colori, le formattazioni condizionali ecc. invece continuano a funzionare e non cambiano da sole. Mi chiedo se c'è qualcosa che posso fare per prevenire
questa perdita di formattazione?
C'è da dire che il file è nato dodici anni fa, ma la conversione XLS->XLSX l'ho fatta parecchio tempo fa e il file non "viaggia avanti e indietro" tra diverse versioni di Excel, quindi non può essere questa la causa. Viene aperto sempre da Office 365, non
da un Excel vecchio con il plugin di fileconverter.
Come possibili cause, posso solo suggerire:
- l'azione di una macro esistente
- la corruzione del foglio, o
- la magia
Se vorresti caricare la cartella di lavoro incriminata su un servizio di condivisione di file e postare un link al file in una risposta qui, io lo darò volontieri un'occhiata. In tal caso, modifica. cancella dati sensibili!
Nel frattempo, per superare il problema, prova qualcosa del genere:
- Alt-F11 per aprire l'editor di VBA
- Ctrl-R per accedere alla finestra Project Explorer ('Gestione progetti')
- Fai doppio clic sul modulo ThisWorkbook (Questa_cartella_di_Lavoro) del file e incolla il seguente codice:
'=========>>
Option Explicit
'--------->>
Private Sub Workbook_Open()
Dim SH As Worksheet
Dim RngEuro As Range, RngCHF As Range
Const sSheetName As String = "Foglio1" '<<=== Modifica
Set SH = ThisWorkbook.Sheets(sSheetName)
With SH
Set RngEuro = Intersect(.UsedRange, .Columns("P:P"))
Set RngCHF = Intersect(.UsedRange, .Columns("Q:Q"))
End With
RngEuro.NumberFormat = "$ #,##0.00"
RngCHF.NumberFormat = "[$CHF] #,##0.00"
End Sub
'<<=========
- Alt-Q per chiudere l'editor di VBA e tornare a Excel.
Salva la cartella di lavoro, con le macro abilitate, con un'estensione xlsm.
Ora, ogni volta che il file sia riaperto, colonne P e Q verranno formattate come euro e franchi svizzeri, rispettivamente.
===
Regards,
Norman