VBA e problemi di visualizzazione dei numeri decimali in Excel


Spesso ho necessità di utilizzare piccoli script VBA per eseguire determinate operazioni su Excel, a volte operazioni anche su numeri. Purtroppo è facile con Excel fare confusione quando si lavora con i numeri, difatti un numero può essere rappresentato in modo differente a seconda delle proprie impostazioni. Facciamo un po’ di chiarezza :-).

Innanzitutto uno stesso numero può essere rappresentato con varie notazioni:

  • 1000,123
  • 1000.123
  • 1.000,123

supponendo che il numero effettivo sia 1000 con parte decimale 123. In questo caso le varie notazioni internazionali possono rappresentarlo in vari modi come ad esempio 1.000,123 dove il punto indica le migliaia e la virgola la parte decimale.

Il problema può essere gestito in due modi usando Excel:

  1. nel caso in cui si lavori unicamente con Excel (senza usare VBA), è sufficiente configurare correttamente le opzioni di Excel.
  2. nel caso in cui utilizziamo script VBA o macro, che esportano ad esempio i dati su file ed effettuano manipolazione sui numeri, bisogna controllare invece le impostazioni del sistema operativo.

Vediamo il primo caso. Come ho scritto, nel caso in cui si lavori unicamente con un foglio Excel e NON ci sia la necessità di esportare dati tramite VBA, gli unici parametri importanti per la configurazione di punto/virgola si trovano all’interno delle opzioni di Excel.

excel_options
Opzioni avanzate di Excel.

A seconda delle proprie necessità possiamo configurare punto o virgola come separatore per i numeri decimali, così come per le migliaia.

Nel secondo caso, in cui usiamo VBA per esportare i dati (ad esempio elaborare/esportare i dati di uno sheet Excel in un file txt) entrano in gioco le impostazioni del sistema operativo. Questo vuol dire che i numeri esportati all’esterno di Excel potrebbero avere una notazione diversa da quella configurati in Excel stesso. Ad esempio:

  1. in Excel abbiamo il numero 1000,123
  2. VBA esporta il numero prelevato da una cella Excel come 1000.123

Potrebbe avvenire una “conversione” di questo tipo se sono configurate male le impostazioni di “Region and Language” di Windows. Dunque controlliamo la nostra configurazione all’interno del pannello di controllo, come visibile in figura.

region_and_language

region_and_language_window

Dunque apriamo “Additional settings“, controlliamo i separatori configurati per decimali e migliaia (Digit grouping), ed eventualmente modifichiamoli.

Region_and_language_additional_settings

Matteo

Annunci

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...