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. Ad esempio un numero può essere rappresentato nei seguenti modi: […]

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

Convertire csv in xls/xlsx con Excel

In questo articolo vedremo come convertire un file csv, in cui i dati sono generalmente separati da un separatore (virgola, 2 punti, punto e virgola), in un file Excel xls/xlsx e con i dati correttamente suddivisi in colonne. Le istruzioni seguenti si riferiscono alla versione inglese di Excel. […]

In questo articolo vedremo come convertire un file csv, in cui i dati sono generalmente separati da un separatore (virgola, 2 punti, punto e virgola), in un file Excel xls/xlsx e con i dati correttamente suddivisi in colonne. Le istruzioni seguenti si riferiscono alla versione inglese di Excel.

Per prima cosa selezionare il tab Data, quindi la colonna interessata (ad esempio la colonna A), e poi “Test to Columns“, come visibile nella seguente figura.

screen1

Dobbiamo poi seguire i passi degli screenshot seguenti, selezionando “Delimited

screen2

specificando poi il delimitatore degli elementi (il modo in cui gli elementi sono separati nel file csv), che in genere è la virgola o il punto e virgola

screen3

La finestra precedente mostra anche un’anteprima del risultato finale.

Dunque dobbiamo indicare il formato delle celle destinazione (lasciamo tranquillamente il formato generale).

screen4

Il risultato finale sarà quello visibile nella seguente figura.

screen5
Risultato finale.

Come ultimo step dobbiamo salvare il file in formato xls/xlsx se vogliamo un file conforme agli standard di Excel.

Matteo aka roghan

[Pillola] Convertire decimali da virgola a punto in Excel

In Excel è possibile rappresentare i decimali sia con la virgola che con il punto. Per fare ciò i passi sono i seguenti (versione inglese di Excel):
Andare in File -> Options -> Advanced;
Deselezionare l’opzione “Use system separators”;
Impostare in “Decimal separator” il punto “.” se si vuole usare il punto come separatore, o “,” se si vuole la virgola;
automaticamente tutti i valori decimali all’interno del foglio Excel aperto saranno convertiti alla rappresentazione specificata.

In Excel è possibile rappresentare i decimali sia con la virgola che con il punto. Per fare ciò i passi sono i seguenti (versione inglese di Excel):

  1. Andare in File -> Options -> Advanced;
  2. Deselezionare l’opzione “Use system separators“;
  3. Impostare in “Decimal separator” il punto “.” se si vuole usare il punto come separatore, o “,” se si vuole la virgola;
  4. automaticamente tutti i valori decimali all’interno del foglio Excel aperto saranno convertiti alla rappresentazione specificata.

Ecco uno screenshot:

Link ufficiale Microsoft per approfondimenti:

roghan