April 21, 2019

Mengubah Angka Menjadi Teks Terbilang [UDF]

Ada kalanya ketika kita bekerja dengan menggunakan Microsoft Excel atau dalam kehidupan sehari-hari, kita menemui data berupa angka yang harus diubah menjadi teks terbilang. Misalnya angka Rp. 3.300.000,- yang harus dieja lagi menjadi “tiga juta tiga ratus ribu rupiah”. Contoh penggunaan teks terbilang ini sering kita jumpai pada penulisan kwitansi, surat perjanjian jual beli, laporan keuangan dan pembukuan atau penulisan jumlah uang di slip setoran atau tarik tunai uang di bank. Untuk dokumen yang memang diharuskan ditulis tangan seperti slip tabungan bank, mau tak mau kita harus menulisnya secara manual. Tapi untuk dokumen elektronik format excel yang dibuat secara rutin, kita bisa membuat pekerjaan menjadi lebih efisien dengan membuat teks terbilang menjadi otomatis.





Untuk membuatnya, kita membutuhkan UDF (User Defined Function) atau function buatan sendiri yang disisipkan melalui jendela Visual Basic Editor (VBE). Tekan Alt+F11 untuk membuka jendela VBE. Setelah jendela VBE terbuka klik menu Insert>Module. Di panel sebelah kanan masukkan kode di bawah ini.

Function Terbilang(ByVal DalamAngka)
Dim Rupiah, Temp
Dim Hitung
ReDim Posisi(9) As String

Posisi(2) = " ribu "
Posisi(3) = " juta "
Posisi(4) = " milyar "
Posisi(5) = " trilyun "

DalamAngka = Trim(Str(DalamAngka))

Hitung = 1

Do While DalamAngka <> ""
    Temp = Ratusan(Right(DalamAngka, 3))

    If Temp <> "" Then Rupiah = Temp & Posisi(Hitung) & Rupiah
    If Len(DalamAngka) > 3 Then
        DalamAngka = Left(DalamAngka, Len(DalamAngka) - 3)
    Else
        DalamAngka = ""
    End If

    Hitung = Hitung + 1
Loop

Select Case Rupiah
    Case ""
        Rupiah = "nol rupiah"
    Case "satu"
        Rupiah = "satu rupiah"
    Case Else
        Rupiah = Rupiah & " rupiah"
End Select

If Mid(Rupiah, 1, 9) = "satu ribu" Then
     Rupiah = Replace(Rupiah, "satu ribu", "seribu")
End If

Rupiah = Replace(Rupiah, "juta satu ribu", "juta seribu")
Rupiah = Replace(Rupiah, "milyar satu ribu", "milyar seribu")
Rupiah = Replace(Rupiah, "trilyun satu ribu", "trilyun seribu")

Terbilang = Rupiah

End Function


Function Ratusan(ByVal DalamAngka)

Dim Hasil As String

If Val(DalamAngka) = 0 Then Exit Function

DalamAngka = Right("000" & DalamAngka, 3)

If Mid(DalamAngka, 1, 1) <> "0" Then
    If Mid(DalamAngka, 1, 1) = "1" Then
        Hasil = "seratus "
    Else
        Hasil = Satuan(Mid(DalamAngka, 1, 1)) & " ratus "
    End If
End If

If Mid(DalamAngka, 2, 1) <> "0" Then
    Hasil = Hasil & Puluhan(Mid(DalamAngka, 2))
Else
    Hasil = Hasil & Satuan(Mid(DalamAngka, 3))
End If

Ratusan = Hasil

End Function


Function Puluhan(TeksPuluhan)

Dim Hasil As String

Hasil = ""

If Val(Left(TeksPuluhan, 1)) = 1 Then 
    Select Case Val(TeksPuluhan)
        Case 10: Hasil = "sepuluh"
        Case 11: Hasil = "sebelas"
        Case 12: Hasil = "dua belas"
        Case 13: Hasil = "tiga belas"
        Case 14: Hasil = "empat belas"
        Case 15: Hasil = "lima belas"
        Case 16: Hasil = "enam belas"
        Case 17: Hasil = "tujuh belas"
        Case 18: Hasil = "delapan belas"
        Case 19: Hasil = "sembilan belas"
        Case Else
    End Select
    
    Else 
    Select Case Val(Left(TeksPuluhan, 1))
        Case 2: Hasil = "dua puluh "
        Case 3: Hasil = "tiga puluh "
        Case 4: Hasil = "empat puluh "
        Case 5: Hasil = "lima puluh "
        Case 6: Hasil = "enam puluh "
        Case 7: Hasil = "tujuh puluh "
        Case 8: Hasil = "delapan puluh "
        Case 9: Hasil = "sembilan puluh "
        Case Else
    End Select
    
    Hasil = Hasil & Satuan(Right(TeksPuluhan, 1))

End If

Puluhan = Hasil

End Function


Function Satuan(Digit)

Select Case Val(Digit)
    Case 1: Satuan = "satu"
    Case 2: Satuan = "dua"
    Case 3: Satuan = "tiga"
    Case 4: Satuan = "empat"
    Case 5: Satuan = "lima"
    Case 6: Satuan = "enam"
    Case 7: Satuan = "tujuh"
    Case 8: Satuan = "delapan"
    Case 9: Satuan = "sembilan"
    Case Else: Satuan = ""
End Select

End Function


Tutup jendela VBE dan kita beralih ke worksheet. Di cell A1 coba masukkan sembarang bilangan bulat. Kemudian di cell B1 kita ketikkan formula =TERBILANG(A1). Kalau langkahnya sudah benar, seharusnya di cell B2 akan menghasilkan teks terbilang dari angka yang ada di cell A1. Kalau belum bisa, coba cek apakah setelan macro di Excel sudah aktif. Singgah di sini untuk mengaktifkan macro.

Kalau sudah benar, jangan lupa menyimpan file-nya dengan ekstensi .xlsm, bukan xls atau xlsx. Ini ada contoh kwitansi yang dilengkapi teks terbilang otomatis. Silahkan di-download dan di-edit sesuai selera.

0 comments:

Post a Comment

Copyright © 2015 ExcelPix All Right Reserved
Shared by Themes24x7