UDF Tanggal (Terbilang Tanggal)

Untuk membuat sebuah terbilang tanggal misalnya seperti tulisan

Pada hari ini,Selasa Dua Puluh Tiga Bulan  Januari Tahun  Dua Ribu Dua Puluh Empat

Sebenarnya bisa dibuat tanpa perlu menambahkan UDF baru lagi, karena UDF yang dibutuhkan untuk membuat tulisan diatas dari data sebuah tanggal cukup dengan UDF Terbilang saja.

Jadi jika kamu sudah memiliki UDF terbilang, sudah bisa membuat tulisan diatas berdasarkan nilai sebuah Tanggal di Cell.

Tetapi memang rumusnya akan sedikit panjang, karena Terbilang hanya digunakan untuk melakukan terbilang pada tanggal dan tahun saja.

Sedangkan untuk tulisan hari dan juga bulan bisa langsung menggunakan rumus bawaan Excel rumus TEXT.

Contoh penggunaan rumusnya bisa dilihat dibawah ini.

="Pada hari ini, " & TEXT(C2,"[$-421]dddd") & Terbilang(DAY(C2)) &
" Bulan " & TEXT(C2,"[$-421]mmmm") & " Tahun " & Terbilang(YEAR(C2))

Pada rumus diatas, saya hanya menggunakan UDF dari terbilang saja, sisanya saya menggunakan rumus bawaan Excel yaitu rumus TEXT dengan LCID Indonesia untuk membuat hari dan bulan menjadi tebilang.

Dengan kondisi seperti rumus diatas, masih banyak dari teman-teman pengguna Excel masih kesulitan membuat rumus seperti diatas dan banyak menanyakan bagaimana membuat UDF Terbilang untuk Tanggal agar rumus bisa dengan mudah dibuat.

UDF Terbilang Tanggal

Konsep untuk membuat UDF terbilang Tanggal ini, sebenarnya tidak akan jauh dari logika rumus diatas malah bisa dibilang sama.

Karena struktur rumusnya juga sama.

UDF dibuat hanya untuk memudahkan penulisan rumus agar penulisan rumus hanya menggunakan satu fungsi saja, tidak seperti rumus yang panjang diatas.

UDF untuk terbilang tanggal bisa dibuat seperti dibawah ini.

Function TerbilangTanggal(N As Long) as String
Dim Wf As WorksheetFunction

Set Wf = WorksheetFunction
TerbilangTanggal = "Pada hari ini," & Wf.Text(N, "[$-421]dddd") _
                   & Terbilang(Day(N)) _
                   & " Bulan " & Wf.Text(N, "[$-421] mmmm") _
                   & " Tahun " & Terbilang(Year(N))
End Function

Catatan :

Pada Fungsi diatas menggunakan Fungsi lain yaitu Fungsi Terbilang. Karena itu, agar UDF Terbilang Tanggal diatas bisa bekerja perlu ditambahkan juga UDF Terbilang pada Module.

Jika kamu sudah memiliki Fungsi Terbilang didalam Module baik module yang sama atau pun Module yg berbeda asal masih dalam satu file yang sama, ataupun terbilang dari Addin maka tidak perlu lagi menambahkan Fungsi terbilang.

Tetapi jika pada File Excel yang akan digunakan belum ada Fungsi terbilang, maka tambahkan juga Script Terbilang berikut ini kedalam Module.

Function Terbilang(N As Long) As String 'max 2.147.483.647
Dim satuan As Variant, Minus As Boolean
On Error GoTo terbilang_error
satuan = Array("", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas")
If N < 0 Then
    Minus = True
    N = N * -1
End If
Select Case N
    Case 0 To 11
        Terbilang = " " + satuan(Fix(N))
    Case 12 To 19
        Terbilang = Terbilang(N Mod 10) + " Belas"
    Case 20 To 99
        Terbilang = Terbilang(Fix(N / 10)) + " Puluh" + Terbilang(N Mod 10)
    Case 100 To 199
        Terbilang = " Seratus" + Terbilang(N - 100)
    Case 200 To 999
        Terbilang = Terbilang(Fix(N / 100)) + " Ratus" + Terbilang(N Mod 100)
    Case 1000 To 1999
        Terbilang = " Seribu" + Terbilang(N - 1000)
    Case 2000 To 999999
        Terbilang = Terbilang(Fix(N / 1000)) + " Ribu" + Terbilang(N Mod 1000)
    Case 1000000 To 999999999
        Terbilang = Terbilang(Fix(N / 1000000)) + " Juta" + Terbilang(N Mod 1000000)
    Case Else
        Terbilang = Terbilang(Fix(N / 1000000000)) + " Milyar" + Terbilang(N Mod 1000000000)
End Select
If Minus = True Then
    Terbilang = "Minus" + Terbilang
End If
Exit Function
terbilang_error:
MsgBox Err.Description, vbCritical, "Terbilang Error"
End Function

Untuk menjalankan UDF Terbilang Tanggal, masih sama seperti UDF pada umumnya.

Tinggal tuliskan Nama fungsi diikuti Cell Tanggal, untuk contohnya bisa dilihat dibawah ini.

=TerbilangTanggal(CellTanggal)

Leave a Reply

Your email address will not be published. Required fields are marked *