Funzione Roundup in Excel e VBA: Guida Completa
Imparare a utilizzare la funzione "Roundup" di Excel dal linguaggio di programmazione integrato VBA (Visual Basic for Applications) permette di eseguire qualsiasi funzione di Excel direttamente da VBA. Questa competenza è preziosa perché Excel dispone di numerose funzioni che VBA non ha nativamente, ma che potrebbero essere necessarie in un programma VBA. È importante notare che la funzionalità VBA che consente di richiamare "Roundup" non segnala errori di sintassi o argomenti come farebbe l'interfaccia standard del foglio di lavoro.
Scopo
La funzione "Roundup" di Excel arrotonda un numero per eccesso al numero di cifre specificato. Ad esempio, eseguendo "Roundup(2,2; 0)" si chiede a Excel di arrotondare 2,2 all'intero successivo. Il "0" nel secondo argomento indica che non si desiderano cifre decimali, equivalendo a richiedere un risultato intero.
Funzione Round di VBA
VBA non dispone di una funzione "Roundup" integrata. La funzione più simile è "Round", che arrotonda per eccesso o per difetto a seconda che l'ultima cifra del numero sia maggiore o minore di 5. Ad esempio, digitando "Round(2,2; 0)" nella finestra "Immediate" di VBA si ottiene 2, invece del 3 che la funzione "Roundup" di Excel restituirebbe.
Proprietà "Formula"
Sebbene VBA non abbia una propria funzione "Roundup", può utilizzare quella di Excel. Per farlo, si imposta la proprietà "Formula" dell'oggetto virtuale "Range" sulla funzione "Roundup". Ecco come procedere: aprire l'ambiente di sviluppo VBA premendo contemporaneamente "Alt" e "F11" da Excel. Cliccare nella finestra "Immediate", quindi digitare: Range("A1").Formula = "=Roundup(2,2; 0)". Tornare a Excel con "Alt+F11". Nella cella A1 apparirà il risultato "3", a conferma che la funzione "Roundup" di Excel è stata applicata correttamente.
Esempio Interattivo
È possibile creare un programma VBA interattivo che accetti dall'utente gli argomenti per la funzione "Roundup" e ne visualizzi il risultato. Dopo aver aperto l'ambiente di sviluppo VBA, incollare il seguente codice:
Public Sub roundUpANumber()
Dim a1, a2, s
a1 = CDbl(InputBox("Inserisci il numero da arrotondare"))
a2 = CInt(InputBox("Inserisci il numero di decimali per l'arrotondamento"))
s = "=Roundup(" & a1 & "," & a2 & ")"
Range("A1").Formula = s
Range("A1").Calculate
MsgBox (Range("A1").Value)
End Sub
Eseguire il programma cliccando su una sua istruzione, poi sul comando "Esegui" del menu "Run". Quando Excel richiede gli argomenti, digitarli e premere "Invio". Il programma mostrerà il risultato della funzione "Roundup" per i valori inseriti.