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]

Kirim email ke