COPY/PASTE kan RUMUS berikut ini pada Module Excel
======================================================
Function ANGKAKATA(nomor)
'Fungsi ANGKAKATA untuk mengubah angka menjadi kata
Application.Volatile
Terjemah = Array("", "satu", "dua", "tiga", "empat", _
"lima", "enam", "tujuh", "delapan", "sembilan")
ANGKAKATA = Terjemah(nomor)
End Function
Function TERBILANG(n_angka, _
Optional m_huruf = 4, Optional Satuan = "")
'Fungsi TERBILANG
Application.Volatile
angka = Fix(Abs(n_angka))
'Dua desimal dibelakang koma
desimal1 = Mid(Abs(n_angka), Len(angka) + 2, 1)
desimal2 = Mid(Abs(n_angka), Len(angka) + 3, 1)
If desimal2 = "" Then
If desimal1 = "" Or desimal1 = "0" Then
Koma = ""
Else
Koma = " koma " & ANGKAKATA(desimal1)
End If
ElseIf desimal2 = "0" Then
If desimal1 = "0" Then
Koma = ""
ElseIf desimal1 = "1" Then
Koma = " koma sepuluh"
Else
Koma = " koma " & ANGKAKATA(desimal1) & " puluh"
End If
Else
If desimal1 = "0" Then
Koma = " koma nol " & ANGKAKATA(desimal2)
ElseIf desimal1 = "1" Then
If desimal2 = "1" Then
Koma = " koma sebelas"
Else
Koma = " koma " & ANGKAKATA(desimal2) & " belas"
End If
Else
Koma = " koma " & ANGKAKATA(desimal1) & _
" puluh " & ANGKAKATA(desimal2)
End If
End If
'Memisahkan angka
No1 = Left(Right(angka, 1), 1)
No2 = Left(Right(angka, 2), 1)
No3 = Left(Right(angka, 3), 1)
No4 = Left(Right(angka, 4), 1)
No5 = Left(Right(angka, 5), 1)
No6 = Left(Right(angka, 6), 1)
No7 = Left(Right(angka, 7), 1)
No8 = Left(Right(angka, 8), 1)
No9 = Left(Right(angka, 9), 1)
No10 = Left(Right(angka, 10), 1)
No11 = Left(Right(angka, 11), 1)
No12 = Left(Right(angka, 12), 1)
No13 = Left(Right(angka, 13), 1)
No14 = Left(Right(angka, 14), 1)
No15 = Left(Right(angka, 15), 1)
'Bilangan satuan
If Len(angka) >= 1 Then
If Len(angka) = 1 And No1 = 1 Then
nomor1 = "satu"
ElseIf Len(angka) = 1 And No1 = 0 Then
nomor1 = "Nol"
ElseIf No2 = "1" Then
If No1 = "1" Then
nomor1 = "sebelas"
ElseIf No1 = "0" Then
nomor1 = "sepuluh"
Else
nomor1 = ANGKAKATA(No1) & " belas"
End If
Else
nomor1 = ANGKAKATA(No1)
End If
Else
nomor1 = ""
End If
'Bilangan puluhan
If Len(angka) >= 2 Then
If No2 = 1 Or No2 = "0" Then
nomor2 = ""
Else
nomor2 = ANGKAKATA(No2) & " puluh "
End If
Else
nomor2 = ""
End If
'Bilangan ratusan
If Len(angka) >= 3 Then
If No3 = "1" Then
nomor3 = "seratus "
ElseIf No3 = "0" Then
nomor3 = ""
Else
nomor3 = ANGKAKATA(No3) & " ratus "
End If
Else
nomor3 = ""
End If
'Bilangan ribuan
If Len(angka) >= 4 Then
If No6 = "0" And No5 = "0" And No4 = "0" Then
nomor4 = ""
ElseIf (No4 = "1" And Len(angka) = 4) Or _
(No6 = "0" And No5 = "0" And No4 = "1") Then
nomor4 = "seribu "
ElseIf No5 = "1" Then
If No4 = "1" Then
nomor4 = "sebelas ribu "
ElseIf No4 = "0" Then
nomor4 = "sepuluh ribu "
Else
nomor4 = ANGKAKATA(No4) & " belas ribu "
End If
Else
nomor4 = ANGKAKATA(No4) & " ribu "
End If
Else
nomor4 = ""
End If
'Bilangan puluhan ribu
If Len(angka) >= 5 Then
If No5 = "1" Or No5 = "0" Then
nomor5 = ""
Else
nomor5 = ANGKAKATA(No5) & " puluh "
End If
Else
nomor5 = ""
End If
'Bilangan ratusan Ribu
If Len(angka) >= 6 Then
If No6 = "1" Then
nomor6 = "seratus "
ElseIf No6 = "0" Then
nomor6 = ""
Else
nomor6 = ANGKAKATA(No6) & " ratus "
End If
Else
nomor6 = ""
End If
'Bilangan jutaan
If Len(angka) >= 7 Then
If No9 = "0" And No8 = "0" And No7 = "0" Then
nomor7 = ""
ElseIf No7 = "1" And Len(angka) = 7 Then
nomor7 = "satu juta "
ElseIf No8 = "1" Then
If No7 = "1" Then
nomor7 = "sebelas juta "
ElseIf No7 = "0" Then
nomor7 = "sepuluh juta "
Else
nomor7 = ANGKAKATA(No7) & " belas juta "
End If
Else
nomor7 = ANGKAKATA(No7) & " juta "
End If
Else
nomor7 = ""
End If
'Bilangan puluhan juta
If Len(angka) >= 8 Then
If No8 = "1" Or No8 = "0" Then
nomor8 = ""
Else
nomor8 = ANGKAKATA(No8) & " puluh "
End If
Else
nomor8 = ""
End If
'Bilangan ratusan juta
If Len(angka) >= 9 Then
If No9 = "1" Then
nomor9 = "seratus "
ElseIf No9 = "0" Then
nomor9 = ""
Else
nomor9 = ANGKAKATA(No9) & " ratus "
End If
Else
nomor9 = ""
End If
'Bilangan milyar
If Len(angka) >= 10 Then
If No12 = "0" And No11 = "0" And No10 = "0" Then
nomor10 = ""
ElseIf No10 = "1" And Len(angka) = 10 Then
nomor10 = "satu milyar "
ElseIf No11 = "1" Then
If No10 = "1" Then
nomor10 = "sebelas milyar "
ElseIf No10 = "0" Then
nomor10 = "sepuluh milyar "
Else
nomor10 = ANGKAKATA(No10) & " belas milyar "
End If
Else
nomor10 = ANGKAKATA(No10) & " milyar "
End If
Else
nomor10 = ""
End If
'Bilangan puluhan Milyar
If Len(angka) >= 11 Then
If No11 = "1" Or No11 = "0" Then
nomor11 = ""
Else
nomor11 = ANGKAKATA(No11) & " puluh "
End If
Else
nomor11 = ""
End If
'Bilangan ratusan milyar
If Len(angka) >= 12 Then
If No12 = "1" Then
nomor12 = "seratus "
ElseIf No12 = "0" Then
nomor12 = ""
Else
nomor12 = ANGKAKATA(No12) & " ratus "
End If
Else
nomor12 = ""
End If
'Bilangan triliun
If Len(angka) >= 13 Then
If No15 = "0" And No14 = "0" And No13 = "0" Then
nomor13 = ""
ElseIf No13 = "1" And Len(angka) = 13 Then
nomor13 = "satu triliun "
ElseIf No14 = "1" Then
If No13 = "1" Then
nomor13 = "sebelas triliun "
ElseIf No13 = "0" Then
nomor13 = "sepuluh triliun "
Else
nomor13 = ANGKAKATA(No13) & " belas triliun "
End If
Else
nomor13 = ANGKAKATA(No13) & " triliun "
End If
Else
nomor13 = ""
End If
'Bilangan puluhan triliun
If Len(angka) >= 14 Then
If No14 = "1" Or No14 = "0" Then
nomor14 = ""
Else
nomor14 = ANGKAKATA(No14) & " puluh "
End If
Else
nomor14 = ""
End If
'Bilangan ratusan triliun
If Len(angka) >= 15 Then
If No15 = "1" Then
nomor15 = "seratus "
ElseIf No15 = "0" Then
nomor15 = ""
Else
nomor15 = ANGKAKATA(No15) & " ratus "
End If
Else
nomor15 = ""
End If
'Jika angka terlalu banyak (> 15 digit)
If Len(angka) > 15 Then
bilang = "Angka terlalu banyak (>15)"
Else
If IsNull(n_angka) Then
bilang = ""
ElseIf n_angka < 0 Then
bilang = "minus " & _
Trim(nomor15 & nomor14 & nomor13 & _
nomor12 & nomor11 & nomor10 & _
nomor9 & nomor8 & nomor7 & nomor6 & _
nomor5 & nomor4 & nomor3 & nomor2 _
& nomor1 & Koma & " " & Satuan)
Else
bilang = Trim(nomor15 & nomor14 & nomor13 _
& nomor12 & nomor11 & nomor10 & nomor9 & _
nomor8 & nomor7 & nomor6 & nomor5 & nomor4 & _
nomor3 & nomor2 & nomor1 & Koma & " " & Satuan)
End If
End If
'Pilihan model huruf
If m_huruf = 4 Then
TERBILANG = StrConv(Left(bilang, 1), 1) & _
StrConv(Mid(bilang, 2, 1000), 2)
Else
TERBILANG = StrConv(bilang, m_huruf)
End If
TERBILANG = Replace(TERBILANG, " ", " ", _
1, 1000, vbTextCompare)
End Function