wa'alaikumussalam wr wb

mas Nang,

Nilai numerik dalam sebuah cells di Excel dibatasi 15 digit (lihat disini
<https://support.office.com/en-us/article/Excel-specifications-and-limits-ca36e2dc-1f09-4620-b726-67c00b05040f#bmcalculation>).
Jika nilai numerik lebih dari 15 digit, maka digit ke 16 dan seterusnya
akan diubah menjadi 0.
Nilai numerik dalam VBA bisa disimpan ke dalam variabel dengan datatype
tertentu yang memiliki ruang penyimpan untuk nilai numerik dalam rentang
tertentu.
Untuk nilai sampai 38 digit, bisa dengan double, tetapi penulisannya (jika
ditulis, akan menggunakan E seperti 1.78E35)
Untuk nilai sampai 28 digit, bisa dengan decimal, dengan deklarasi sebagai
variant dan diisi dengan fungsi cDec (lihat disini
<http://b-excel.blogspot.co.id/2013/07/belajarvba-004-tipe-data-variabel.html>
).

Wassalamu'alaikum wr wb
Kid







2016-09-19 13:53 GMT+07:00 Nang Agus nanga...@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> Asalamualaikum warahmatulah,
>
> Dear member Belajar Excel.
>
> Saya membuat UDF sederhana untuk mengubah angka menjadi huruf.
>
> Public Function hurufe(x As String, Optional rupiah As Boolean, Optional
> koma As Boolean) As String  '
> Dim ewonan(6)
> ewonan(1) = "ribu "
> ewonan(2) = "juta "
> ewonan(3) = "milyar "
> ewonan(4) = "triliun "
> ewonan(5) = "kuadriliun "
>         If (x = 0) Then
>         hurufe = "nol "
>         Exit Function
>     End IF
>
> xxB = Left(x, km)
>     For i = 1 To (Int((Len(xxB) + 2) / 3))
>     tampung = Right(xxB, 3 * i)
>     bagian = Left(tampung, Len(tampung) - 3 * (i - 1))
>         If (bagian > 0) Then
>         If bagian = 1 Then
>         anu = atusan(bagian, False)
>         Else
>         anu = atusan(bagian, True)
>         End If
>         tulisan = anu & ewonan(i - 1) & tulisan
>     End If
>     Next
> hurufe = tulisan
> end Function
>
> UDF tersebut hanya dapat digunakan maksimal 999.999.999.999.999 (satu
> kuadriliun kurang 1)
> Jika 1 kuadriliun langsung error, namun kalau inputnya diubah menjadi text
> maka semua berjalan dengan normal sampai angka berapapun.
> apakah karena UDF berbunyi x as string? jika diubah x as double  sampai 5
> milliar saja sudah error apalagi ada komanya.
>
> Permasalahannya kalau input dalam text tidak bisa di format dan tidak bisa
> dihitung.
>
> apakah memang excel hanya mampu menghitung teliti sebanyak 15 digit saja?
> (tidak dapat menampung bilangan  999.999.999.999.999.999, =>
> 999.999.999.999.999.000)
>
> saya coba UDF_Leksikal milik Mas Kid:
> <https://www.box.com/s/gefh85lon4avu9n66ifm>
> Public Function LeNum(sText As String _
>                             , Optional sJenis As String _
>                             , Optional sTandaDesimal As String _
>                             , Optional sLang As String _
>                             , Optional sCurDec As String = "<default>" _
>                             , Optional sCurCent As String = "<default>" _
>                             , Optional sTextCon As String = "<default>" _
>                             , Optional sTextSeparator As String =
> "<default>" _
>                             , Optional sCase As String _
>                             , Optional vLang As Variant _
>                         ) As String
> ...
> KELUAR:
>     Err.Clear
>     On Error GoTo 0
>     LeNum = "#NULL!"
> End Function
>
> Ternyata sama juga, sudah error kalau bilanganya 16 digit.
> Apakah ini meripakan keterbatasan Excel? Adakah cara mengakalinya agar
> 1. UDF dapat berjalan lancar
> 2. Excel dapat teliti menghitung angka sampai pentaliun
> (1.123.123.123.123.123.123.123.123)
> Atas perhatiannya disampaikan terima kasih.
> Wasalamualaikum warahmatullah.
> NangAgus
>
> 
>
  • [belajar-excel] Error UDF Nang Agus nanga...@gmail.com [belajar-excel]
    • Re: [belajar-excel] Erro... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]

Kirim email ke