Dacă într-un sheet se doreşte să fie formatate şi afişate valorile numerice prin rotunjire cu un anumit număr de zecimale, se poate crea următorul macrou. La fel de bine se poate crea o funcţie. Este important a se reţine că este necesară selectarea celulelor/ariei respective. Dacă selecţia se va face pentru toată foaia de calcul, durata de aplicare a codului riscă a fi foarte mare, ţinând cont că Excelul va „mătura” toate celulele respectivului sheet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Sub fc_rotunj() ' Dim arie As Range, nr_zec As String, nr_zec_afis As String Dim i As Long nr_zec = InputBox("Inserează numărul de zecimale " & Chr(13) & " (0 - fără zecimale, 1 - o zecimală etc.)" & _ Chr(13) & Chr(13) & "ATENŢIE:" & Chr(13) & " formatarea se aplică celulelor numerice selectate.", "Număr zecimale", 0) If StrPtr(nr_zec) = 0 Then MsgBox "Ai renunţat la operaţiune!" Else For i = 1 To nr_zec nr_zec_afis = nr_zec_afis & Replace(i, i, 0) Next If nr_zec = 0 Then nr_zec_afis = nr_zec_afis Else nr_zec_afis = "." & nr_zec_afis End If For Each arie In Selection If IsNumeric(arie) And Not IsEmpty(arie) Then arie.Value = "=Round(" & arie.Value & "," & nr_zec & ")" arie.NumberFormat = "#,##0" & nr_zec_afis arie.Copy arie.PasteSpecial xlPasteValues End If Next arie End If End Sub |
Dacă e nevoie, în loc de Round. se poate folosi RoundUp. sau RoundDown..
După selectarea celulelor vizate se afişează formularul de macrouri cu ajutorul combinaţiei ALT+F8 (dacă nu este vizibil meniul Developer) unde se va găsi şi fc_rotunj.
După selectarea celulelor vizate se afişează formularul de macrouri cu ajutorul combinaţiei ALT+F8 (dacă nu este vizibil meniul Developer) unde se va găsi şi fc_rotunj.
- Funcţia Round rotunjește un număr la un număr specificat de cifre.
- Funcţia RoundUp rotunjește prin adaos un număr, în sensul dinspre 0, comportându-se ca ROUND, cu excepția că rotunjește numai prin adaos.
- Funcţia RoundDown rotunjește prin lipsă un număr, înspre 0, comportându-se ca ROUND, cu excepția că rotunjește numai prin lipsă.
Sursa: StackOverflow.com, Monkidea.com