Sabtu, 28 Juli 2012

Cacatan Kecil.............29 juli 2012



Membuat Rumus “Terbilang” untuk Aplikasi Excel dengan Macro VBA


Ini salah satu cara bagaimana menerjemahkan angka ke dalam kata-kata dengan Visual Basic for Application dan nantinya akan dikenali sebagai macro. Fungsi dalam list program yang dipakai nantinya sebenarnya dapat digunakan pada aplikasi MS Office atau aplikasi Visual Basic lainnya namun pada bahasan ini dibatasi pada penggunaan dalam aplikasi MS Excel karena keterbatasan pengetahuan saya. Bagi yang sudah terbiasa pada penggunaan Visual Basic Editor pada MS Excel dapat langsung ke bagian list program.
Fungsi tersebut akan berguna:
  • Menerjemahkan angka ke dalam kata-kata sampai dengan 15 digit termasuk nilai desimal (ratusan trilian apabila tanpa nilai desimal). Angka 15 digit ini merupakan nilai yang dapat ditampung MS Excel sebelum dirubah ke nilai exponen.
  • Desimal yang diterjemahkan sampai dengan dua angka dibelakang koma.
  • Mengenal 4 Style, yaitu cara penulisan huruf besar/kecil-nya.
  • Bebas menggunakan satuan yang diinginkan.
Langkah-langkanya adalah:
  1. Buka aplikasi MS Excel, apabila secara otomatis tidak muncul workbook baru (atau Book 1) maka bukalah Workbook baru dari File > New… (Ctrl+N);
  2. Pada workbook baru pada sheet mana saja pilihlah Tools > Macro > Visual Basic Editor atau dengan shortcut Alt+F11.
  3. Setelah itu akan muncul window baru bertitle Microsoft Visual Basic. Setelah itu, pilih Insert > Module. Pada Module 1 yang baru dibuat, letakkan kursor pada bagian Code. Apabila belum muncul atau beralih ke bagian tersebut pilih View > Code (F7).
  4. Pada lembar kosong tersebut copy paste-kan list program pada file terbilang.txt.
  5. Setelah Anda selesai mengcopy pilih File > Close and Return to Microsoft Exceluntuk kembali ke workbook MS Excel.
  6. Simpan workbook tersebut, namai misalnya terbilang.xls.
  7. Sekarang Anda dapat mencoba fungsi tersebut dalam sheet mana saja dalam workbook tersebut. Misalnya Anda ketikan pada cell A1 angka berapa saja. Pilih cell yang akan menampung terjemahan kata-katanya, misalnya di A2.
  8. Pilih Insert > Function…, maka akan muncul dialog box daftar fungsi di MS Excel.
  9. Dari daftar dalam Function category, pilihlah User Defined, sehingga dalam daftar di Function name muncul nama fungsi terbilang, pilih fungsi tersebut kemudian klikOK.
  10. Isilah dialog box di atas dengan ketentuan sebagai berikut:
    Nilai_Angka
    Isilah dengan angka yang akan diterjemahkan, atau isi dengan nama cell yang berisi angka yang akan diterjemahkan, misalnya A1.
    Style
    Isi dengan kode 1 sampai dengan 4 untuk menentukan cara penulisannya.
    1: Teks terbilang ditulis dengan huruf besar (kapital) semua (uppercase);
    2: Teks terbilang ditulis dengan huruf kecil semua (lowercase);
    3: Teks terbilang ditulis dengan huruf besar pada awal kata saja (title case);
    4: Teks terbilang ditulis dengan huruf besar pada huruf pertama saja (sentence case).
    Isian style sifatnya optional, apabila tidak diisi maka defaultnya 4 (sentence case).
    Satuan
    Isi dengan satuan untuk teks terbilang, misalnya rupiah, unit atau buah. Isian satuan sifatnya optional, apabila dikosongkan maka teks terbilang ditulis tanpa satuan tertentu.
  11. Anda juga dapat langsung menggunakan fungsi terbilang secara langsung pada cell dengan formula:
    =terbilang(Nilai_Angka;Style;”Satuan”)
    Penjelasan lihat di atas. Perlu diperhatikan bahwa penulisan satuan ditulis dengan cara diapit tanda petik(“).
  12. Sekarang Anda tutup workbook tersebut. Coba buka kembali workbook tersebut, untuk dapat menggunakan fungsi terbilang diatas Anda harus memilih Enable Macros setiap kali Anda menggunakan.
Pada tahapan ini Anda dapat menggunakan fungsi terbilang pada cell dan worksheet mana saja tetapi terbatas pada workbook tersebut. Setiap kali Anda membuat file MS Excel dan memerlukan fungsi terbilang Anda harus mengulangi langkah-langkah di atas atau Anda menyimpan dengan nama atau lokasi yang berbeda dengan cara File > Save As…
Ada cara lain agar setiap kali membuat file/workbook baru, Anda langsung dapat menggunakan fungsi terbilang. Langkah-langkahnya:

  1. Buka file yang Anda simpan di atas yang berekstensi xls. Kemudian pilih File > Save As.. Kemudian pada isian File name isi dengan nama file, misalnya terbilang. Pada isian Save as type pilih Microsoft Excel Add-In (*.xla).
    Secara default folder yang terbuka untuk menyimpan file type Add-In ini berada pada C:WINDOWS\Aplication Data\Microsoft\AddIns, sebaiknya Anda menyimpannya pada folder ini, meskipun Anda dapat menentukan lokasi lain. Nantinya file yang disimpan berekstensi xla.
  2. Setelah Anda menyimpannya, tutup MS Excel. Buka kembali dengan workbook baru.
  3. Pada workbook baru tersebut pilih Tools > Add-Ins…
    Klik Browse… maka secara default Anda dihadapkan pada isi folder AddIns seperti disebut pada point 1, kemudian pilih file Add-In terbilang tersebut. Maka fungsi terbilang akan masuk list pada Add-Ins available seperti pada Gambar 7. Pastikan Anda beri tanda check. Kemudian klik OK.
  4. Pada workbook baru ini, Anda sudah dapat menggunakan fungsi terbilang, begitu pula saat Anda nanti membuat file/workbook baru.
  5. Anda dapat menonaktifkan Add-In ini dengan menghilangkan tanda check seperti tersebut di atas












8 komentar:

  1. Berapa Batas penerjemahan untuk angka desimal adalah 3 angka dibelakang koma

    BalasHapus
  2. 1 Option Explicit
    2 Dim st, abc As String
    3 Function terbilang(x As Range) As String
    4 'infomattic.com
    5 Dim mil As Integer, jeti As Integer, rr As Long, pp As String, dt As Boolean
    6 pp = Format(Fix(x), "000000000000")
    7 dt = (TypeName(x.Value) = "String")
    8 If dt Then
    9 terbilang = "#VALUE!"
    10 Else
    11 mil = Mid(pp, 1, 3): jeti = Mid(pp, 4, 3): rr = Mid(pp, 7, 6)
    12 terbilang = WorksheetFunction.Trim(eja(mil) & IIf(mil, " milyar ", "") & _
    13 eja(jeti) & IIf(jeti, " juta ", "") & eja(rr))
    14 If Len(pp) > 12 Then terbilang = "#N/A"
    15 End If
    16 End Function
    17 Function eja(ByVal num As Single) As String
    18 Dim angka As Single
    19 angka = Mid(Format(Fix(Abs(num)), "000000000000"), 7, 6)
    20 st = Array(" ", "satu ", "dua ", "tiga ", "empat ", "lima ", "enam ", _
    21 "tujuh ", "delapan ", "sembilan ", "sepuluh ", "sebelas ", _
    22 "dua belas ", "tiga belas ", "empat belas ", "lima belas ", _
    23 "enam belas ", "tujuh belas ", "delapan belas ", "sembilan belas ")
    24 abc = vbNullString
    25 eji angka, 10 ^ 6, 10 ^ 5, "ratus ", 1
    26 eji angka, 10 ^ 5, 1000, "ribu ", 2
    27 eji angka, 10 ^ 3, 100, "ratus ", 3
    28 eji angka, 100, 1, " ", 4
    29 eja = abc
    30 End Function
    31 Sub eji(angka As Single, n As Long, t As Long, tp As String, k As Byte)
    32 Dim bb As Byte
    33 bb = Fix((angka Mod n) / t)
    34 If bb < 20 Then
    35 If (angka >= 10 ^ 5) * (k = 2) + (k = 4) Then
    36 abc = abc & st(bb) & IIf(((angka Mod 10 ^ 5) < 1000), tp, "")
    37 Else
    38 abc = abc & IIf(bb = 1, "se", st(bb))
    39 End If
    40 Else
    41 abc = abc & st(Fix(bb / 10)) & "puluh " & st(bb Mod 10)
    42 End If
    43 If bb Then abc = abc & tp
    44 End Sub

    BalasHapus
  3. rumusnya bikin kepala puyeng..... harus ada pelatihan khusus tuh...

    BalasHapus
    Balasan
    1. itu sudah rumus lg rumus lagi......ayo bikn jadwal aja hehehehe

      Hapus
  4. MANTAP PAK ADHAR PERLU SY PERDALAM

    BalasHapus
  5. Penjelasan dari pak harry bs d cermati!!!!!!!!!!!

    BalasHapus
  6. Lihat rumusnya Pusiiiiing, tapi perlu dipelajari!!!!

    BalasHapus