« Ritorna al blog
Ritorna alla lista completa degli articoli
Modifica del separatore decimale con VBA
EXCEL & VBA - maggio 01, 2022In questo tutorial vediamo come personalizzare il separatore decimale grazie a VBA verificando che ogni valore immesso sia un numero. Ogni valore sarà inserito in una nuova riga del foglio di lavoro Excel utilizzando un ciclo Do While. Utilizziamo questa tipologia di ciclo per verificare, come prima cosa, che la cella sia vuota per poi continuare o meno l'operazione di inserimento su una nuova riga del foglio di lavoro Excel.
Partiamo con il creare il nostro file Excel, abilitiamo la sezione Sviluppo e l'editor Visual Basic. Incolliamo il seguente codice:
Sub testInput()
' Variabili
Dim num As Double
Dim strNum As String
Dim riga As Integer
Dim colonna As Integer
Dim continua As Boolean
' Imposta il separatore decimale
Application.DecimalSeparator = ","
Application.UseSystemSeparators = False
' Verifica che l'input immesso sia un numero
strNum = InputBox(Prompt:="Inserisci il valore nella cella A1.")
strNum = Replace(strNum, ".", Application.DecimalSeparator)
Debug.Print (strNum)
If IsNumeric(strNum) = True Then
num = CDbl(strNum)
Else
num = 0
End If
' Inserisce i valori uno dopo l'altro
riga = 1
colonna = 1
Do
If IsEmpty(Cells(riga, colonna)) Then
Cells(riga, colonna).Value = num
continua = False
Else
riga = riga + 1
continua = True
End If
Loop While continua = True
End Sub
Avviando il codice, il programma vi chiederà di inserire un valore numerico che andrà poi ad inserirsi in una nuova riga del foglio di lavoro Excel. L'output sarà simile alla seguente immagine:
Notate i valori in fase di debug. Alcuni valori sono stati inseriti con il punto mentre altri con la virgola ma, in entrambi i casi, il valore viene correttamente inserito nella cella Excel con il separatore decimale che abbiamo impostato, ossia la virgola. Laddove, invece, il valore inserito non fosse un numero valido, viene semplicemente stampato uno zero. Impostando manualmente il separatore decimale abbiamo quindi il controllo completo sulla nostra applicazione ed eviteremo spiacevoli inconvenienti sia nei calcoli sia laddove l'utente dovesse usare impostazioni di cultura differenti.
Per maggiori informazioni vi invito anche a visionare la documentazione appropriata di Microsoft: Application.DecimalSeparator property (Excel)