Kamis, 22 Mei 2014

Fungsi Terbilang Pada Microsoft Excel

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.

Buat  sebuah  Module  baru  dengan  cara  klik  menu  Insert  -  Module  kemudian 
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