Menjawab pertanyaan di artikel saya yang ini, saya langsung mencari arsip programming saya, karena dulu seingat saya pernah membuat fungsi tersebut untuk penulisan kuitansi. Setelah 2 jam cari-cari saya tidak juga menemukan fungsi yang telah saya tulis 5 tahun yang lalu, akhirnya saya mengambil jalan pintas saja, yaitu googling…
Sebetulnya pembuatan fungsi terbilang ini tidaklah susah jika kita mau menggunakan logika kita sedikit. Tapi sayang malam ini, logika saya juga baru ngga mau di ajak kompromi jadi saya akan membuat tutorial-nya saja step-by-step dan scriptnya saya mengambilnya di-sini lalu saya hanya merapikannya sedikit saja. Berikut langkah yang harus anda ambil:
- Buka Microsoft Excel.
- Tekan Alt + F11 untuk membuka VBA Editor, atau klik menu Tools -> Macro -> Visual Basic Editor.
- Di Visual Basic Editor, klik menu Insert -> Module.
- Lalu copy-paste script ini ke bidang kerjanya:
Public Function TERBILANG(x As Double) As String Dim tampung As Double Dim teks As String Dim bagian As String Dim i As Integer Dim tanda As Boolean Dim letak(5) letak(1) = "RIBU " letak(2) = "JUTA " letak(3) = "MILYAR " letak(4) = "TRILYUN " If (x < 0) Then TERBILANG = "" Exit Function End If If (x = 0) Then TERBILANG = "NOL" Exit Function End If If (x < 2000) Then tanda = True End If teks = "" If (x >= 1E+15) Then TERBILANG = "NILAI TERLALU BESAR" Exit Function End If For i = 4 To 1 Step -1 tampung = Int(x / (10 ^ (3 * i))) If (tampung > 0) Then bagian = ratusan(tampung, tanda) teks = teks & bagian & letak(i) End If x = x - tampung * (10 ^ (3 * i)) Next teks = teks & ratusan(x, False) TERBILANG = teks & " Rupiah" End Function Function ratusan(ByVal y As Double, ByVal flag As Boolean) As String Dim tmp As Double Dim bilang As String Dim bag As String Dim j As Integer Dim angka(9) angka(1) = "SE" angka(2) = "DUA " angka(3) = "TIGA " angka(4) = "EMPAT " angka(5) = "LIMA " angka(6) = "ENAM " angka(7) = "TUJUH " angka(8) = "DELAPAN " angka(9) = "SEMBILAN " Dim posisi(2) posisi(1) = "PULUH " posisi(2) = "RATUS " bilang = "" For j = 2 To 1 Step -1 tmp = Int(y / (10 ^ j)) If (tmp > 0) Then bag = angka(tmp) If (j = 1 And tmp = 1) Then y = y - tmp * 10 ^ j If (y >= 1) Then posisi(j) = "BELAS " Else angka(y) = "SE" End If bilang = bilang & angka(y) & posisi(j) ratusan = bilang Exit Function Else bilang = bilang & bag & posisi(j) End If End If y = y - tmp * 10 ^ j Next If (flag = False) Then angka(1) = "SATU " End If bilang = bilang & angka(y) ratusan = bilang End Function
- Setelah di paste, coba cek script ini dengan klik menu Debug -> Compile VBA Project, jika tidak keluar kotak peringatan apapun biasanya script anda sudah beres.
- Tutup jendela Visual Basic Editor anda.
Nah sekarang tinggal coba aja:
- Ketik di cell sembarang sederet angka (misal di cell A1), lalu untuk memanggil fungsi terbilang ini (misal di cell A2), tinggal ketik
=TERBILANG(A1)
.
Cukup mudah bukan? Anda dapat mengunduh contoh artikel ini di sini.
Just in case, jika macro ini tidak bisa di jalankan di Excel anda (karena secara default Excel menset keamanan terhadap macro ke level tinggi), cek Security macro setting di Excel anda. Untuk melihat konfigurasi Security macro, klik Tools -> Macro -> Security dan pilih opsi Low lalu klik tombol OK. Saran saya pastikan anda sudah mempunya anti virus terinstal di komputer anda untuk menjaga agar virus macro tidak dapat menyerang komputer anda.
pak tolong penjelasan dunk tentang penambahan dalam xl.
uang saya 500.000 di kolom A1
kolom A2 ada pemasukan 50.000
begitu kolom ke 3 ada pemasukan 100.000
nah yang jadi pertanyaan kalo penambahan itu berbeda-beda hingga A100, rumusnya gmn?kalo nilai akhirnya di masukan ke kolom F10
masa ditambah satu-satu kayak gini (=A1+A2+A3+A4+A5…A100)
mohon pencerahan
Thks infonya sir, saya share ya pak , trims
Mohon Bantuannya..
klo terbilang tanggal ada ga yach?
misalnya 12 Desember 2011 or 12/12/2011
saya pengen hasilnya menjadi :
” Dua Belas Desember Dua Ribu Sebelas ”
Mohon petunjuk dan bantuannya
Thanks
Reynaldo
Ada beberapa pertanyaan yang tak terjawab, misalnya:
1. Bagaimana setiap mau mulai excel tidak usah bikin macro lagi.
Jawab serius: Simpan pake excel template aza
2. Terus bagaimana menghilangkan kata ‘rupiah’
Jawaban tidak serius: Buang tulisan ‘rupiah’ di macro, terus kalau nampilkan lagi, tulis lagi.
3. Terus kalau mau nampilkan terbilangnya huruf Besar di setiap katanya…. (tidak pernah di jawab)
Saya kasih solusi sedikit untuk masalah poin 2 dan 3.
Solusi:
Fungsi terbilang di modifikasi dikit menjadi
Public Function TERBILANG(x As Double, Optional bRupiah As Boolean = False, Optional bTitleCase As Boolean = False) As String
Keterangan: dua buah variabel tipe boolean (bRupaih dan bTitleCase) bersifat Optional jadi kalau tidak diisi nilainya False semua. Misalkan saya menulis fungsi di Sheet =TERBILANG(A2) berarti bRupiah = False dan bTitleCase = False yang dikonsepnya berarti tidak pake kata ‘rupiah’ dan hurufnya gede semua.
Langkah berikutnya…
Diakhir fungsi TERBILANG tersebut yang ada tulisan kaya gini.
teks = teks & ratusan(x, False)
TERBILANG = teks & ” Rupiah”
End Function
Modifikasi sedikit menjadi:
teks = teks & ratusan(x, False)
If bRupiah = True And bTitleCase = False Then
TERBILANG = UCase(teks & ” Rupiah”)
ElseIf bRupiah = True And bTitleCase = True Then
TERBILANG = TitleCase(teks & ” Rupiah”)
ElseIf bRupiah = False And bTitleCase = False Then
TERBILANG = UCase(teks)
ElseIf bRupiah = False And bTitleCase = True Then
TERBILANG = TitleCase(teks)
End If
Maksudnya:
Perintah IF… ELSEIF… diatas ngecek apakah bRupiah dan bTitleCase di set True atau sebaliknya (False)
Kemudian langkah terakhir
buat Fungsi TitleCase (Untuk mengubah huruf awalnya gede semua), seperti berikut ini.
Function TitleCase(sInput As String) As String
Dim lngString As Long, chrTmp As String, sTmp As String, sLast As String
sTmp = CStr(LCase(sInput))
sLast = ” ”
For lngString = 1 To Len(sTmp)
chrTmp = Mid$(sTmp, lngString, 1)
If sLast “z” And sLast = “a” And chrTmp = “à” Or sLast <= "þ") Then
Mid$(sTmp, lngString, 1) = UCase$(chrTmp)
End If
End If
sLast = chrTmp
Next lngString
TitleCase = sTmp
End Function
Terus menggunakan fungsinya bagaimana? Sama seperti cara sebelumnya, jika A2 berisi 1234, maka, jika ditulis:
=TERBILANG(A2;FALSE;FALSE)
atau cukup ditulis:
=TERBILANG(A2)
menghasilkan: SERIBU DUA RATUS TIGA PULUH EMPAT
Jika ditulis:
=TERBILANG(A2;TRUE;FALSE)
atau cukup ditulis:
=TERBILANG(A2;TRUE)
menghasilkan: SERIBU DUA RATUS TIGA PULUH EMPAT RUPIAH
Jika ditulis:
=TERBILANG(A2;FALSE;TRUE)
atau cukup ditulis:
=TERBILANG(A2;;TRUE)
menghasilkan: Seribu Dua Ratus Tiga Puluh Empat
terus jika ditulis:
=TERBILANG(A2;TRUE;TRUE)
menghasilkan: Seribu Dua Ratus Tiga Puluh Empat Rupiah
Catatan: Jika penulisan rumus menghasilkan error, coba ganti titik koma(;) dengan koma (,) misalkan diubah menjadi
=TERBILANG(A2,TRUE,TRUE)
THANK’S
Oh ya, Fungsi TitleCase bisa digunakan untuk mengubah huruf awal gede dan huruf berikutnya kecil.
Misal Cell A5 menggandung teks:
poLItekNIK NegERi poNTIANaK
Jika kita gunakan fungsi diatas maka ditulis
=TITLECASE(A5)
akan menghasilkan:
Politeknik Negeri Pontianak
Fungsi ini mirip Fungsi PROPER (Fungsi Built-in Excel), cara menggunakannya mirip:
=PROPER(A5)
THANK’S
@reynaldo: wah harus buat script nya lagi tuh pak….
@Hendro: terima kasih atas jawaban-jawaban nya Pak, koreksi saja mungkin untuk fungsi TITLECASE yang Bapak tulis bisa menggunakan saja PROPER -> =PROPER(TERBILANG(XX))….
Yup, Fungsi TITLECASE emang mirip Fungsi built-in Excel PROPER. Saya hanya mencoba memberi sampel untuk yang lagi seneng ngotak-ngatik macro-nya excel.
Oops, koq ada link dikomentarku, admin tolong dihapus linknya. Thank’s.
thx gan, sangat manjur, tapi hanya ngebacanya hanya sampai bilangan 100 triliun ya, cara menaikkan bacaannya gimana yah gan ????
@Johan: masalahnya saya ngga pernah buat kuitansi sampai di atas 100 triliun pak, jadi untuk lebih dari itu harus ubah script nya lagi pak.
trimakasih banyak prof Edi.. 😀
thanx y mas eddy….lancar marapat macross terbilangnya…..pernah saya dapet yg 52.251.600 dibacanya Lima puluh dua juta dua ratus lima puluh seribu enam ratus rupiah…..
klo macros dr mas eddy maknyossss…..semoga sukses n tmbh pintar
thank ya mas….semoga bisa
berbagi ilmu yang lain
kerjaan saya terbantu nie:)
thanks… its work…
jasa konversi file: http://sip.net46.net/fileconversion
Its works!!!
Selamat, sampai saat ini ilmu anda masih bermanfaat, thanks sob…..
Thank you very much…
terima kasih mas atas sharing ilmunya. berguna buat tugas saya. thx
mas , mau nanya ni , kalau mau buat Sebelas Juta gmna ya ?
soal ny klo pake program yg ini ntar hasilnya : SeBelas Juta
membuat B di kata “Belas” jadi huruf kecil gmna yaa mas ?
thanks before yaa
^^
keren infonya pak, thanks a lot
tadinya saya cuma mau tau kalu terbilang seperti Rp. 5.851.759,- ini dibacanya apa ( hehehe…. ) tapi setelah cari2 malah ketemu info yg keren nie. akhirnya saya bukan cuma tau terbilangnya, malahan bisa copy rumusnya…
makasih banyak yo pak
o ya pak, ada yg ketinggalan, bagaimana jika inging menuliskan terbilang itu dalam 2 baris/lebih?
bisa ga kalo penulisan rupiahnya jg menggunakan huruf capital seperti angka terbilangnya?
terimakasi
@ Marco : kalau saya menggunakan rumus ini, tulisannya SEBELAS JUTA RUPIAH, tidak ada masalah..
@ pak edi : saya sudah ketemu cara untuk membuat tulisan rupian menjadi huruf capital, trimakasih
mas sy gak bisa”,,,
keluar perintah #NAME#… solusinya gmn ya mas,,,
trimss…
mas sy blm bisa”,,, kluar #NAME#,,
gmn mas solusix,, trims
Mantap
Kalau 123,123 (seratus dua puluh tiga koma satu dua tiga bgmn caranya gan?? Trims infonya sebelumnya
kalau 123,123 menjadi tertulis “seratus dua puluh tiga koma satu dua tiga” bagaimana caranya mas
bagaimana cara menghilangkan”Ambiguous name detected:terbilang?, nuwun
ada yang punya rumus bikin giro bca di excel?
please gaptek soalnya :<
Mas gmna caranya agar hurufnya menjadi huruf kecil semua dan ad tanda kurung pada hurufnya
Contohnya kya gini mas :
700000 untuk terbilangnya menjadi (tujuh ratus ribu rupiah)
Mohon bantuanx mas
aku udah masukin codingan nya di vba, udah di compile juga dan berhasil. tapi saat restart laptop, error lagi. ada bacaan “SHOT VBE” setelah end fuction. dan selalu muncul setelah restart. muhun bantuanya. trims