Secara default excel (baik generasi excel 2000, 2003 maupun
2007) tidak memiliki perintah terbilang. Perintah terbilang yang dimaksud
disini adalah perintah atau formula untuk mengubah dari angka menjadi kata.
Misalkan kita ingin mengubah angka 1,000 menjadi kata seribu, atau seribu
rupiah. Kalau hanya sesekali mungkin tidak masalah kita ketik secara manual,
bagaimana kalau harus berulang kali mengetikkannya, tentu merepotkan.
Kami akan coba membagikan cara untuk membuat fungsi terbilang pada Ms. Excel
Langsung saja pertama buka dulu office Excel- nya lalu setelah itu buka jendela VBAdengan menekan Alt+F11. Maka akan terbuka layar seperti ini.
Langsung saja pertama buka dulu office Excel- nya lalu setelah itu buka jendela VBAdengan menekan Alt+F11. Maka akan terbuka layar seperti ini.
Buat sebuah Module baru dengan
cara klik menu Insert
- Module kemudian
tambahkan script berikut.
tambahkan script berikut.
Function Ratusan(cData As String) As
String
Dim DataDepan, nLenData,
nCount As Integer
Dim SisaData, cHuruf As
String
Dim Satuan, Imbuhan As
Variant
Satuan = Array("
nol", " satu", " dua", " tiga", "
empat", " lima", " enam", " tujuh", "
delapan", " sembilan")
Imbuhan =
Array("", "", " puluh", " ratus")
nLenData = Len(cData)
SisaData = ""
cHuruf = ""
For nCount = nLenData To
1 Step -1
DataDepan =
Val(Mid(cData, 1, 1))
SisaData =
Mid(cData, 2, Len(cData))
If Not (DataDepan
= 0) Then
If
((nCount = 2) And (CInt(Val(cData)) > 10) And (CInt(Val(cData)) < 20))
Then
cHuruf = cHuruf + IIf(CInt(Val(SisaData)) = 1, " se",
Satuan(CInt(Val(SisaData))))
cHuruf = cHuruf + IIf(CInt(Val(SisaData)) = 1, "", "
") + "belas"
GoTo Keluar
Else
cHuruf = cHuruf + IIf((DataDepan = 1) And (Not (nCount = 1)), "
se", Satuan(DataDepan)):
cHuruf = cHuruf + IIf((DataDepan = 1) And (Not (nCount = 1)),
Trim(Imbuhan(nCount)), Imbuhan(nCount))
End If
End If
cData = SisaData
Next
Keluar:
Ratusan = cHuruf
End Function
Function Isi(cAngka As String) As
String
Dim nCount, nLenData As
Integer
Dim cHuruf, cData As
String
Dim Akhiran As Variant
Akhiran =
Array("", "", " ribu", " juta", "
milyar", " triliun", " biliun", " ziliun")
cHuruf = ""
cData = ""
nLenData =
Fix(Len(cAngka) / 3) + IIf((Len(cAngka) Mod 3) = 0, 0, 1)
For nCount = nLenData To
1 Step -1
cData =
Mid(cAngka, 1, IIf(Len(cAngka) - (3 * (nCount - 1)) > 0, Len(cAngka) - (3 *
(nCount - 1)), 1))
If Not
(Fix(Val(cData)) = 0) Then
cHuruf = cHuruf + IIf((nCount = 2) And (CInt(Val(cData)) = 1), " se",
Ratusan(cData))
cHuruf = cHuruf + IIf((nCount = 2) And (CInt(Val(cData)) = 1),
Trim(Akhiran(nCount)), Akhiran(nCount))
cHuruf = Replace(cHuruf, "se ribu", "seribu")
End If
cAngka =
Right(cAngka, 3 * (nCount - 1))
Next
Isi = cHuruf
End Function
Function Terbilang(nNumber As Double)
As String
Dim cHuruf, cNumber, cFullNumber,
cDecsNumber As String
Dim nPosDecs As Integer
If VarType(nNumber) = 2
Then
nNumber =
CDbl(CStr(Fix(nNumber)) + Application.DecimalSeparator + "0")
Else
nNumber = nNumber
End If
cHuruf = ""
If nNumber < 0 Then
cHuruf = "
minus"
cNumber =
Trim(CStr((nNumber * -1)))
Else
cNumber =
Trim(CStr(nNumber))
End If
nPosDecs = InStr(cNumber,
Application.DecimalSeparator)
cFullNumber =
Mid(cNumber, 1, IIf(nPosDecs = 0, Len(cNumber), nPosDecs - 1))
cDecsNumber =
Right(cNumber, Len(cNumber) - IIf(nPosDecs = 0, Len(cNumber), nPosDecs))
If Not
(Fix(Val(cFullNumber)) = 0) Then
cHuruf = cHuruf +
Isi(CStr(cFullNumber))
Else
cHuruf = "
nol"
End If
If Not (cDecsNumber =
"") Then
If Not
(Fix(Val(cDecsNumber)) = 0) Then
cHuruf =
cHuruf + " koma" + Isi(cDecsNumber)
End If
End If
Terbilang = cHuruf
End Function
Jika dalam Visual
Basic Editor anda masih ditemui error maka
akan berwarna merah, tanda warna merah pada tulisan
menandakan adanya kesalahan pada script yang anda masukan.
Jika semuanya sudah benar, maka tutup kembali Visual Basic
Editor dan kembali ke lembar kerja excel, coba ketikkan angka sembarang di sembarang
tempat. Misal di cell F5 ketikkan 1200120 (nb : Maksimal 2147483647)
Lalu di sebelahnya atau dimana saja ketik "=terbilang(F5)" tanpa tanda kutip. Perhatikan hasilnya.
0 comments:
Posting Komentar