Giacomo ha un foglio di lavoro per l’immissione dei dati che consente agli utenti di inserire le informazioni. Vorrebbe che una cella fosse formattata automaticamente per visualizzare esattamente il numero di cifre decimali digitato dall’utente. Ad esempio, se l’utente digita “12,345”, desidera che la cella venga formattata automaticamente per visualizzare 3 cifre decimali. Giacomo sa che potrebbe usare il formato Generale per la cella, ma quell’approccio non funziona se l’utente inserisce un valore che termina con 0, come “12,34500”, che vorrebbe formattare (automaticamente) per visualizzare 5 cifre decimali.
Se stai pensando di poter utilizzare un formato personalizzato per soddisfare le tue esigenze, non funzionerà. Con ogni formato personalizzato che potremmo inventare, Excel elimina gli zeri finali da ciò che visualizza (oppure, se il formato personalizzato include “0” come segnaposto, aggiunge zero alla fine della voce).
Il modo più semplice per gestirlo, onestamente, è semplicemente formattare le celle come Testo prima di iniziare a inserire le informazioni. In questo modo, Excel accetterà semplicemente ciò che viene inserito, inclusi eventuali zeri finali, e lo inserirà nella cella. Puoi, inoltre, allineare a destra il contenuto delle celle in modo che assomiglino almeno un po’ di più ai valori numerici.
Lo svantaggio di questo è che devi stare attento nell’usare i valori nelle formule. Il modo più sicuro è semplicemente circondare qualsiasi riferimento alla cella all’interno della funzione VALORE, in questo modo:
=VALORE(A1)*1,5
Un altro approccio consiste nel creare una macro che controlla ciò che viene immesso in un intervallo di celle:
- formatta le celle come Testo.
- crea un intervallo denominato (DataEntry) con quelle celle.
- aggiungi il codice seguente al foglio di lavoro in uso:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
La macro viene attivata ogni volta che qualcosa cambia nel foglio di lavoro. Quindi verifica se tale modifica si è verificata in una delle celle dell’intervallo DataEntry. In tal caso, esamina ciò che viene immesso nella cella (che Excel tratta come testo, poiché è così che è stata formattata la cella) e determina se si tratta di un numero e quante cifre ci sono a destra della virgola decimale. Quindi formatta la cella in modo che vengano visualizzate tutte le cifre decimali e reinserisce il valore numerico nella cella.
L’unica condizione in cui questo approccio non funziona è se si inserisce un valore in una cella nell’intervallo DataEntry (che converte la cella in un formato numerico) e quindi si immette un valore numerico diverso nella stessa cella. La macro non ha modo di sapere, in quel caso, se sono stati immessi degli zeri finali (ricorda che gli zeri finali vengono mantenuti solo se la cella è formattata come Testo. Poiché la cella non lo è, Excel elimina gli zeri finali e la macro lavorerà con quel valore senza zeri finali come se fosse stato inserito così).