Membuat Fungsi Terbilang Keuangan dan Nilai Desimal di Excel Menggunakan VBA

Salah satu kebutuhan yang sering dihadapi dalam laporan keuangan adalah mengubah angka menjadi teks atau kalimat terbilang, misalnya mengubah angka menjadi format teks dalam bahasa Indonesia, seperti "Seratus Dua Puluh Tiga Rupiah". Sayangnya, Excel tidak memiliki fungsi bawaan untuk melakukan hal ini, sehingga kita perlu membuatnya sendiri dengan menggunakan VBA (Visual Basic for Applications).

Jika kita sebagai pengembang atau membuat aplikasi berbasis excel yang membutuhkan fungsi terbilang, maka sangat disarankan fungsi terbilang di tanam atau di masukan pada module aplikasi yang dibuat dan jangan di pisahkan yang nantinya sebagai addins, namun untuk kebutuhan pribadi maka silakan dibuat sebagai addins.


Langkah-langkah Membuat Fungsi Terbilang di Excel


Pertama Buka Excel dan Aktifkan VBA Editor

Untuk mulai membuat fungsi terbilang, kita perlu membuka Excel dan mengakses editor VBA. Berikut langkah-langkahnya:

  • Buka aplikasi Excel.
  • Tekan tombol Alt + F11 untuk membuka VBA Editor.
  • Pada jendela VBA Editor, klik Insert > Module. Sebuah module baru akan terbuka di mana kita bisa menulis kode VBA.

Tulis Kode VBA untuk Fungsi Terbilang

Salin kode terbilang keuangan berikut ke dalam module yang telah dibuat di VBA Editor. Kode ini akan mengubah angka menjadi teks terbilang dalam bahasa Indonesia.

Terbilang Keuangan

Function terBilang(ByVal Angka As Double, Optional TextCase As String = "normal", Optional MataUang As String = "") As String
    Dim Satuan As Variant
    Dim Temp As String
    Dim terbilangUtama As String
    Dim TerbilangDesimal As String
    Dim NilaiUtama As Long
    Dim NilaiDesimal As Long

    Satuan = Array("", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas")

    NilaiUtama = Int(Angka)
    NilaiDesimal = Round((Angka - NilaiUtama) * 100, 0)

    If NilaiUtama < 12 Then
        terbilangUtama = Satuan(NilaiUtama)
    ElseIf NilaiUtama < 20 Then
        terbilangUtama = Satuan(NilaiUtama - 10) & " Belas"
    ElseIf NilaiUtama < 100 Then
        terbilangUtama = Satuan(NilaiUtama \ 10) & " Puluh " & terBilang(NilaiUtama Mod 10)
    ElseIf NilaiUtama < 200 Then
        terbilangUtama = "Seratus " & terBilang(NilaiUtama - 100)
    ElseIf NilaiUtama < 1000 Then
        terbilangUtama = Satuan(NilaiUtama \ 100) & " Ratus " & terBilang(NilaiUtama Mod 100)
    ElseIf NilaiUtama < 2000 Then
        terbilangUtama = "Seribu " & terBilang(NilaiUtama - 1000)
    ElseIf NilaiUtama < 1000000 Then
        terbilangUtama = terBilang(NilaiUtama \ 1000) & " Ribu " & terBilang(NilaiUtama Mod 1000)
    ElseIf NilaiUtama < 1000000000 Then
        terbilangUtama = terBilang(NilaiUtama \ 1000000) & " Juta " & terBilang(NilaiUtama Mod 1000000)
    ElseIf NilaiUtama < 1000000000000# Then
        terbilangUtama = terBilang(NilaiUtama \ 1000000000) & " Miliar " & terBilang(NilaiUtama Mod 1000000000)
    ElseIf NilaiUtama < 1E+15 Then
        terbilangUtama = terBilang(NilaiUtama \ 1000000000000#) & " Triliun " & terBilang(NilaiUtama Mod 1000000000000#)
    End If

    If NilaiDesimal > 0 Then
        If NilaiDesimal < 12 Then
            TerbilangDesimal = Satuan(NilaiDesimal)
        ElseIf NilaiDesimal < 20 Then
            TerbilangDesimal = Satuan(NilaiDesimal - 10) & " Belas"
        Else
            TerbilangDesimal = Satuan(NilaiDesimal \ 10) & " Puluh " & Satuan(NilaiDesimal Mod 10)
        End If
        terBilang = Trim(terbilangUtama) & " Koma " & TerbilangDesimal
    Else
        terBilang = Trim(terbilangUtama)
    End If

    If MataUang <> "" Then
        terBilang = terBilang & " " & MataUang
    End If

    Select Case LCase(TextCase)
        Case "ucase"
            terBilang = UCase(terBilang)
        Case "lcase"
            terBilang = LCase(terBilang)
        Case "ulcase"
            terBilang = UCase(Left(terBilang, 1)) & LCase(Mid(terBilang, 2))
    End Select
End Function

Terbilang Nilai Desimal

Function terbilangNilai(ByVal Angka As Double, Optional TextCase As String = "normal") As String
    Dim Satuan As Variant
    Dim bilangUtama As String
    Dim TerbilangDesimal As String
    Dim NilaiUtama As Long
    Dim NilaiDesimal As String

    Satuan = Array("", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan")

    NilaiUtama = Int(Angka)
    NilaiDesimal = Format((Angka - NilaiUtama) * 100, "00")

    bilangUtama = terbilangUtama(NilaiUtama, Satuan)

    If NilaiDesimal = "00" Then
        TerbilangDesimal = "Nol Nol"
    Else
        TerbilangDesimal = terbilangUtama(CInt(Left(NilaiDesimal, 1)), Satuan) & " " & terbilangUtama(CInt(Right(NilaiDesimal, 1)), Satuan)
    End If
    
    terbilangNilai = Replace(Trim(bilangUtama), " Nol", "") & " Koma " & Trim(TerbilangDesimal)
    
    Select Case LCase(TextCase)
        Case "ucase"
            terbilangNilai = UCase(terbilangNilai)
        Case "lcase"
            terbilangNilai = LCase(terbilangNilai)
        Case "ulcase"
            terbilangNilai = UCase(Left(terbilangNilai, 1)) & LCase(Mid(terbilangNilai, 2))
    End Select
End Function

Function terbilangUtama(ByVal Angka As Long, ByVal Satuan As Variant) As String
    Dim Hasil As String
    
    If Angka = 0 Then
        Hasil = "Nol"
    ElseIf Angka < 10 Then
        Hasil = Satuan(Angka)
    ElseIf Angka < 20 Then
        Hasil = Satuan(Angka Mod 10) & " Belas"
    ElseIf Angka < 100 Then
        Hasil = Satuan(Angka \ 10) & " Puluh " & terbilangUtama(Angka Mod 10, Satuan)
    ElseIf Angka < 200 Then
        Hasil = "Seratus " & terbilangUtama(Angka - 100, Satuan)
    ElseIf Angka < 1000 Then
        Hasil = Satuan(Angka \ 100) & " Ratus " & terbilangUtama(Angka Mod 100, Satuan)
    ElseIf Angka < 2000 Then
        Hasil = "Seribu " & terbilangUtama(Angka - 1000, Satuan)
    ElseIf Angka < 1000000 Then
        Hasil = terbilangUtama(Angka \ 1000, Satuan) & " Ribu " & terbilangUtama(Angka Mod 1000, Satuan)
    Else
        Hasil = "Angka terlalu besar"
    End If
    
    terbilangUtama = Trim(Hasil)
End Function

Setelah kita menyalin kode di atas, simpan dengan menekan Ctrl + S, kemudian tutup jendela VBA Editor.


Menggunakan Fungsi Terbilang Keuangan

Setelah fungsi nilai keuangan ditambahkan, kita bisa menggunakannya langsung di dalam lembar kerja Excel seperti menggunakan fungsi Excel biasa. Berikut adalah beberapa contoh penggunaan fungsi Terbilang:

  • Untuk mengubah angka di sel A1 menjadi teks terbilang
  • =terBilang(A1)
  • Untuk mengubah angka menjadi teks dengan format huruf besar
  • =terBilang(A1;"ucase"))
  • Untuk mengubah angka menjadi teks dengan format huruf kecil
  • =terBilang(A1;"lcase")
  • Untuk mengubah angka menjadi teks dengan format huruf besar depan saja
  • =terBilang(A1;"ulcase")
  • Untuk mengubah angka dengan tambahan teks "Rupiah"
  • =terBilang(A1;"ulcase";"Rupiah")

Fungsi Terbilang ini akan mengubah angka yang ada di sel Excel menjadi teks dalam bahasa Indonesia. Misalnya, jika di sel A1 terdapat angka 123, maka hasil dari formula =terBilang(A1) adalah Seratus Dua Puluh Tiga. Jika kita menambahkan parameter Rupiah, hasilnya akan menjadi Seratus Dua Puluh Tiga Rupiah.


Menggunakan Fungsi Terbilang Nilai Desimal

Setelah fungsi nilai desimal ditambahkan, kita bisa menggunakannya langsung di dalam lembar kerja Excel seperti menggunakan fungsi Excel biasa. Berikut adalah beberapa contoh penggunaan fungsi Terbilang:

  • Untuk mengubah angka di sel A1 menjadi teks terbilang
  • =terbilangNilai(A1)
  • Untuk mengubah angka menjadi teks dengan format huruf besar
  • =terbilangNilai(A1;"ucase")
  • Untuk mengubah angka menjadi teks dengan format huruf kecil
  • =terbilangNilai(A1;"lcase")
  • Untuk mengubah angka menjadi teks dengan format huruf besar depan saja
  • =terbilangNilai(A1;"ulcase")

Fungsi Terbilang ini akan mengubah angka yang ada di sel Excel menjadi teks dalam bahasa Indonesia. Misalnya, jika di sel A1 terdapat angka 90,07 maka hasil dari formula =terbilangNilai(A1) adalah Sembilan Puluh Koma Nol Tujuh. atau angka 81,10 maka hasilnya adalah Delapan Puluh Satu Koma Satu Nol.


Jika ingin menyimpan sebagai Add-in

Setelah selesai memasukan kode VBA, simpan file dengan memilih File > Save As.
Kemudian pilih lokasi penyimpanan dan pada opsi Save as type, pilih Excel Add-In (.xlam)*.
Beri nama file add-in dan klik Save.


Mengaktifkan Add-in di Excel

  • Kembali ke Excel dan buka File > Options > Add-Ins.
  • Pada bagian bawah, pilih Excel Add-ins dan klik Go.
  • Klik Browse, cari file add-in yang sudah kita simpan, dan klik OK.
  • Centang kotak add-in untuk mengaktifkannya, kemudian klik OK.

Sekarang fungsi atau makro yang Kita buat akan tersedia di Excel. Jika berupa fungsi, kita bisa menggunakannya langsung di lembar kerja Excel seperti fungsi bawaan lainnya. Jika berupa makro, kita dapat menjalankannya melalui tab Developer > Macros.


Kesimpulan

Dengan menggunakan macro VBA, kita dapat membuat fungsi terbilang sendiri di Excel yang sangat berguna untuk berbagai kebutuhan, seperti penulisan nilai pada invoice, kuitansi, atau laporan keuangan. Fungsi ini dapat disesuaikan sesuai kebutuhan dengan menambahkan parameter tambahan seperti mata uang atau mengubah format teks.

Membuat fungsi terbilang ini dapat menghemat waktu dan menghindari kesalahan saat mengonversi angka ke dalam teks secara manual. Selamat mencoba!

Lebih baru Lebih lama

Formulir Kontak