Membuat Fungsi Terbilang dengan VBA - Macro

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 – langkahnya adalah sebagai berikut :
• Buka aplikasi MS Excel, apabila secara otomatis tidak muncul workbook baru (atau Book 1) maka bukalah Workbook baru dari File > New… (Ctrl+N);
• Pada workbook baru pada sheet mana saja pilihlah Tools > Macro > Visual Basic Editor atau dengan shortcut Alt+F11.
• 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).
• Pada lembar kosong tersebut copy paste-kan list program dibawah ini

'Fungsi Terbilang dengan VBA untuk MS Office
'Fungsi penterjemahan masing-masing angka
Private Function KeKata(Nomor)
TrjKata = Array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan")
KeKata = TrjKata(Nomor)
End Function

'Mulai penulisan Fungsi Terbilang
Public Function terbilang(Nilai_Angka, Optional Style = 4, Optional Satuan = "")
Angka = Fix(Abs(Nilai_Angka))
'Desimal dibelakang koma
des1 = Mid(Abs(Nilai_Angka), Len(Angka) + 2, 1)
des2 = Mid(Abs(Nilai_Angka), Len(Angka) + 3, 1)

If des2 = "" Then
If des1 = "" Or des1 = "0" Then
Koma = ""
Else
Koma = " koma " & KeKata(des1)
End If
ElseIf des2 = "0" Then
If des1 = "0" Then
Koma = ""
ElseIf des1 = "1" Then
Koma = " koma sepuluh"
Else
Koma = " koma " & KeKata(des1) & " puluh"
End If
Else
If des1 = "0" Then
Koma = " koma nol " & KeKata(des2)
ElseIf des1 = "1" Then
If des2 = "1" Then
Koma = " koma sebelas"
Else
Koma = " koma " & KeKata(des2) & " belas"
End If
Else
Koma = " koma " & KeKata(des1) & " puluh " & KeKata(des2)
End If
End If
'Misahin Angka
No1 = Left(Right(Angka, 1), 1)
No2 = Left(Right(Angka, 2), 1)
No3 = Left(Right(Angka, 3), 1)
No4 = Left(Right(Angka, 4), 1)
No5 = Left(Right(Angka, 5), 1)
No6 = Left(Right(Angka, 6), 1)
No7 = Left(Right(Angka, 7), 1)
No8 = Left(Right(Angka, 8), 1)
No9 = Left(Right(Angka, 9), 1)
No10 = Left(Right(Angka, 10), 1)
No11 = Left(Right(Angka, 11), 1)
No12 = Left(Right(Angka, 12), 1)
No13 = Left(Right(Angka, 13), 1)
No14 = Left(Right(Angka, 14), 1)
No15 = Left(Right(Angka, 15), 1)
'Satuan
If Len(Angka) >= 1 Then
If Len(Angka) = 1 And No1 = 1 Then
Nomor1 = "satu"
ElseIf Len(Angka) = 1 And No1 = 0 Then
Nomor1 = "Nol"
ElseIf No2 = "1" Then
If No1 = "1" Then
Nomor1 = "sebelas"
ElseIf No1 = "0" Then
Nomor1 = "sepuluh"
Else
Nomor1 = KeKata(No1) & " belas"
End If

Else
Nomor1 = KeKata(No1)
End If
Else
Nomor1 = ""
End If

'Puluhan
If Len(Angka) >= 2 Then
If No2 = 1 Or No2 = "0" Then
Nomor2 = ""
Else
Nomor2 = KeKata(No2) & " puluh "
End If
Else
Nomor2 = ""
End If
'Ratusan
If Len(Angka) >= 3 Then
If No3 = "1" Then
Nomor3 = "seratus "
ElseIf No3 = "0" Then
Nomor3 = ""
Else
Nomor3 = KeKata(No3) & " ratus "
End If
Else
Nomor3 = ""
End If
'Ribuan
If Len(Angka) >= 4 Then
If No6 = "0" And No5 = "0" And No4 = "0" Then
Nomor4 = ""
ElseIf (No4 = "1" And Len(Angka) = 4) Or (No6 = "0" And No5 = "0" And No4 = "1") Then
Nomor4 = "seribu "
ElseIf No5 = "1" Then
If No4 = "1" Then
Nomor4 = "sebelas ribu "
ElseIf No4 = "0" Then
Nomor4 = "sepuluh ribu "
Else
Nomor4 = KeKata(No4) & " belas ribu "
End If

Else
Nomor4 = KeKata(No4) & " ribu "
End If
Else
Nomor4 = ""
End If
'Puluhan ribu
If Len(Angka) >= 5 Then
If No5 = "1" Or No5 = "0" Then
Nomor5 = ""
Else
Nomor5 = KeKata(No5) & " puluh "
End If
Else
Nomor5 = ""
End If
'Ratusan Ribu
If Len(Angka) >= 6 Then
If No6 = "1" Then
Nomor6 = "seratus "
ElseIf No6 = "0" Then
Nomor6 = ""
Else
Nomor6 = KeKata(No6) & " ratus "
End If
Else
Nomor6 = ""
End If
'Jutaan
If Len(Angka) >= 7 Then
If No9 = "0" And No8 = "0" And No7 = "0" Then
Nomor7 = ""
ElseIf No7 = "1" And Len(Angka) = 7 Then
Nomor7 = "satu juta "
ElseIf No8 = "1" Then
If No7 = "1" Then
Nomor7 = "sebelas juta "
ElseIf No7 = "0" Then
Nomor7 = "sepuluh juta "
Else
Nomor7 = KeKata(No7) & " belas juta "
End If

Else
Nomor7 = KeKata(No7) & " juta "
End If
Else
Nomor7 = ""
End If
'Puluhan juta
If Len(Angka) >= 8 Then
If No8 = "1" Or No8 = "0" Then
Nomor8 = ""
Else
Nomor8 = KeKata(No8) & " puluh "
End If
Else
Nomor8 = ""
End If
'Ratusan juta
If Len(Angka) >= 9 Then
If No9 = "1" Then
Nomor9 = "seratus "
ElseIf No9 = "0" Then
Nomor9 = ""
Else
Nomor9 = KeKata(No9) & " ratus "
End If
Else
Nomor9 = ""
End If
'Milyar
If Len(Angka) >= 10 Then
If No12 = "0" And No11 = "0" And No10 = "0" Then
Nomor10 = ""
ElseIf No10 = "1" And Len(Angka) = 10 Then
Nomor10 = "satu milyar "
ElseIf No11 = "1" Then
If No10 = "1" Then
Nomor10 = "sebelas milyar "
ElseIf No10 = "0" Then
Nomor10 = "sepuluh milyar "
Else
Nomor10 = KeKata(No10) & " belas milyar "
End If

Else
Nomor10 = KeKata(No10) & " milyar "
End If
Else
Nomor10 = ""
End If
'Puluhan Milyar
If Len(Angka) >= 11 Then
If No11 = "1" Or No11 = "0" Then
Nomor11 = ""
Else
Nomor11 = KeKata(No11) & " puluh "
End If
Else
Nomor11 = ""
End If
'Ratusan Milyar
If Len(Angka) >= 12 Then
If No12 = "1" Then
Nomor12 = "seratus "
ElseIf No12 = "0" Then
Nomor12 = ""
Else
Nomor12 = KeKata(No12) & " ratus "
End If
Else
Nomor12 = ""
End If
'Triliun
If Len(Angka) >= 13 Then
If No15 = "0" And No14 = "0" And No13 = "0" Then
Nomor13 = ""
ElseIf No13 = "1" And Len(Angka) = 13 Then
Nomor13 = "satu triliun "
ElseIf No14 = "1" Then
If No13 = "1" Then
Nomor13 = "sebelas triliun "
ElseIf No13 = "0" Then
Nomor13 = "sepuluh triliun "
Else
Nomor13 = KeKata(No13) & " belas triliun "
End If

Else
Nomor13 = KeKata(No13) & " triliun "
End If
Else
Nomor13 = ""
End If
'Puluhan triliun
If Len(Angka) >= 14 Then
If No14 = "1" Or No14 = "0" Then
Nomor14 = ""
Else
Nomor14 = KeKata(No14) & " puluh "
End If
Else
Nomor14 = ""
End If
'Ratusan triliun
If Len(Angka) >= 15 Then
If No15 = "1" Then
Nomor15 = "seratus "
ElseIf No15 = "0" Then
Nomor15 = ""
Else
Nomor15 = KeKata(No15) & " ratus "
End If
Else
Nomor15 = ""
End If

If Len(Angka) > 15 Then
bilang = "Digit Angka Terlalu Banyak"
Else
If IsNull(Nilai_Angka) Then
bilang = ""
ElseIf Nilai_Angka < 0 Then bilang = "minus " & Trim(Nomor15 & Nomor14 & Nomor13 & Nomor12 & Nomor11 & Nomor10 & Nomor9 & Nomor8 & Nomor7 _ & Nomor6 & Nomor5 & Nomor4 & Nomor3 & Nomor2 & Nomor1 & Koma & " " & Satuan) Else bilang = Trim(Nomor15 & Nomor14 & Nomor13 & Nomor12 & Nomor11 & Nomor10 & Nomor9 & Nomor8 & Nomor7 _ & Nomor6 & Nomor5 & Nomor4 & Nomor3 & Nomor2 & Nomor1 & Koma & " " & Satuan) End If End If If Style = 4 Then terbilang = StrConv(Left(bilang, 1), 1) & StrConv(Mid(bilang, 2, 1000), 2) Else terbilang = StrConv(bilang, Style) End If terbilang = Replace(terbilang, " ", " ", 1, 1000, vbTextCompare) End Function • Setelah Anda selesai mengcopy pilih File > Close and Return to Microsoft Excel untuk kembali ke workbook MS Excel.
• Simpan workbook tersebut, namai misalnya terbilang.xls.
• 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.
• Pilih Insert > Function…, maka akan muncul dialog box daftar fungsi di MS Excel.
• Dari daftar dalam Function category, pilihlah User Defined, sehingga dalam daftar di Function name muncul nama fungsi terbilang, pilih fungsi tersebut kemudian klik OK, sehingga muncul dialog box
• 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.
• 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(”).
• Sekarang Anda tutup workbook tersebut. Coba buka kembali workbook tersebut, maka akan muncul peringatan seperti. 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:
• 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.
• Setelah Anda menyimpannya, tutup MS Excel. Buka kembali dengan workbook baru.
• Pada workbook baru tersebut pilih Tools > Add-Ins… Muncul dialog box, 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.
• Pada workbook baru ini, Anda sudah dapat menggunakan fungsi terbilang, begitu pula saat Anda nanti membuat file/workbook baru.
• Anda dapat menonaktifkan Add-In ini dengan menghilangkan tanda check seperti tersbut di atas.

Read Users' Comments (1)komentar

Membuat Macro dalam Excel

Macro di Dalam Excel

Macro di dalam Excel adalah procedure di dalam VBA project (Microsoft Visual Basic) yang dapat dibuat oleh kita, baik dengan cara merekam dari berbagai aktifitas yang sudah kita lakukan di dalam Excel, maupun dibuat dengan cara mengetik sendiri secara langsung. Macro berguna untuk menjalankan berbagai aktifitas yang sering kita lakukan sehari-hari di dalam Excel, sehingga kita tidak perlu lagi mengulangnya secara manual.

Tempat penyimpanan macro dibagi menjadi dua, yakni di dalam workbook itu sendiri (This Workbook dan New Workbook) dan di dalam personal workbook (Personal Macro Workbook). Jika kita menyimpan macro di dalam workbook itu sendiri, maka macro dapat dijalankan hanya oleh workbook tersebut. Namun jika kita menyimpan macro di dalam personal workbook, maka macro dapat dijalankan oleh seluruh workbook yang aktif dibuka pada aplikasi Microsoft Excel.

Merekam Macro
Untuk merekam macro, silahkan ikuti langkah-langkah sebagai berikut:
1. Klik menu Tools --> Macro --> Wild SightRecord New Macro.
2. Ketikan nama macronya, misalnya “TestMacro”.
Shortcut key adalah kombinasi tombol pada keyboard yang dapat kita tekan untuk menjalankan macro ini. Jadi kita tidak perlu membuat ataupun membuka menu untuk menjalankan macro ini. Kotak ini tidak perlu diisi jika macro kita jarang digunakan.
4. Pada kotak Store macro in, terdapat tiga pilihan untuk menyimpan macro, yakni This Workbook, New Workbook dan Personal Macro Workbook. Pilihlah This Workbook jika kita ingin macro disimpan di dalam workbook yang sedang aktif. Pilihlah New Workbook jika kita ingin macro disimpan di dalam workbook baru. Pilihlah Personal Macro Workbook jika kita ingin macro disimpan di dalam workbook Personal.xls. Jika kita simpan macro di dalam Personal Macro Workbook, maka macro yang kita rekam akan dapat dijalankan oleh seluruh workbook yang aktif dibuka pada aplikasi Microsoft Excel.
5. Klik OK, maka segala aktifitas yang kita kerjakan di dalam Excel akan langsung direkam, kemudian dikonversi kedalam procedure di dalam VBA project.
6. Silahkan pilih/blok range A1:B3.

7. Hentikan proses perekaman, yakni dengan cara klik tombol stop.



Melihat/Mengedit Macro
1. Klik menu Tools --> Macro --> Visual Basic Editor.
2. Pilihlah workbook tempat penyimpanan macro yang sudah kita buat ini, lalu pilih Modules, kemudian klik dua kali nama module yang terakhir (pada contoh ini adalah Module1).
3. Maka terlihat disana procedure VBA yang sudah kita lakukan di dalam Excel, yakni memilih range A1:B3.
4. Tambahkan pada baris sebelum End Sub kode sebagai berikut:
MsgBox "Macro Selesai di Run."

5. Close VBA ini, lalu kembali ke workbook kita.

Persiapan Sebelum Menggunakan/Menjalankan Macro
Macro hanya dapat dijalankan jika macro yang kita buat tersebut di aktifkan. Untuk itu, kita harus memberi izin (enable) macro tersebut agar dapat dijalankan di dalam Excel. Silahkan klik menu Tools --> Macro --> Securty. Pilihlah level “Medium”.

Jika kita nanti membuka file Excel yang di dalamnya terdapat macro, maka Excel akan menanyakan apakah macro tersebut akan di disable atau di enable. Jika kita yakin macro tersebut memang kita yang membuatnya, atau mungkin juga orang lain yang membuatnya namun macro tersebut aman, maka pilihlah Enable Macros. Namun jika kita ragu-ragu, yakni macro tersebut mungkin berbahaya, pilih Disable Macros.

Menjalankan/Run Macro
1. Pilih cell A1. Untuk mencoba menjalankan macro yang sudah kita rekam tadi, klik menu Tools --> Macro --> Macros.
2. Pilih macro TestMacro, lalu klik Run.
3. Maka terlihat range A1:B3 diblok secara otomatis. Lalu muncul pesan sebagai berikut:

Untuk tahap selanjutnya, kita dapat membuat macro yang komplek, yang berisi berbagai aktifitas di dalam Excel.

Read Users' Comments (0)

Menjual Program TI

Berapa lamakah dewan direksi atau dewan komisaris kira-kira punya waktu untuk mendengarkan sebuah usulan rencana-rencana TI? 1 jam? 30 menit? 15 menit? Berapa lamakah kita mempersiapkan rencana presentasi rencana program atau proyek TI strategis kita?

Sepertinya pertanyaan di atas remeh. Tapi percayalah, semakin pendek waktu yang dimiliki dewan direksi atau dewan komisaris, dan semakin lama waktu yang dibutuhkan oleh orang TI untuk presentasi, maka bersiap-siaplah tak akan ada program atau proyek TI strategis TI yang akan disetujui.

Masalahnya seringkali cuma satu: BAHASA

Orang-orang TI seperti kita ini by nature akan menggunakan istilah-istilah TI ketika berbicara dengan manajemen. Tapi mari kita renungkan percakapan singkat berikut ini:

Manajemen: Ya, silakan presentasikan usulan program ERP itu.

Orang TI: Begini pak. Kalau ERP ini kita implementasi, maka kita akan punya sistem yang terintegrasi. Data-data kita lebih aman karena akan terkonsentrasi di kantor pusat, sehingga lebih mudah mengontrolnya. Pemeliharaan sistem TI secara keseluruhan akan lebih mudah. Kita akan lebih punya daya saing.

Manajemen: hmmm..... Saya nggak ngerti teknisnya. Tapi apa manfaat ERP untuk bisnis ini? Bukankah dengan kondisi sekarang kita tetap tumbuh, bisnis kita sehat dan kita saat ini terus leading di market? Mengapa saya harus mengeluarkan uang untuk ERP? Mana perhitungannya bahwa kalau saya keluarkan uang untuk itu maka bisnis ini memang akan semakin baik?

Orang TI: Gubrak........

Ini masalah serius. Karena kalau TI tak lagi punya program atau proyek strategis, tidak ada yang menarik di dunia TI itu. Tiap hari kita hanya akan berkutat pada hal-hal teknis yang sebenarnya tak punya kontribusi signifikan atas bisnis.

***

Dalam sebuah sharing dengan manajemen TI salah satu perusahaan, sebagai awal dari pembahasan Corporate IT Security dibahas topik sederhana: bahasa apa yang tepat untuk IT Security sehingga manajemen memiliki persepsi bahwa IT Security itu penting? RISIKO BISNIS!!! Manajemen tidak akan suka mendengar berbagai terminologi teknis, tetapi akan membuka mata dan telinga ketika mendengar bahwa yang dikelola adalah risiko bisnis. Risiko-risiko di berbagai aset TI akan lebih menarik jika dipresentasikan dalam risiko-risiko proses bisnis.

Mengapa program atau proyek TI seringkali sulit mendapatkan sponsorship dan persetujuan investasi dari manajemen? Kesalahan paling mendasar yang sering dilakukan oleh orang TI adalah terlalu asyik tenggelam dalam menyusun arsitektur TI yang indah dan komprehensif, sampai lupa bagaimana membahasakannya kepada manajemen yang awam terhadap TI.

Dan bahasa yang dimengerti oleh manajemen adalah BENEFIT. Mengapa program ini strategis, apa kaitannya dengan strategi bisnis perusahaan? Apa benefitnya terhadap perusahaan: tangible dan intangible? Berapa cost-nya? Apakah rasio benefit/cost masuk akal? Bahasa seperti ini lebih disukai manajemen, dan bisa disampaikan dengan singkat, lugas dan meyakinkan dalam waktu yang tak terlalu lama. Detailnya? Percayalah, kalau manajemen sudah tertarik bahasa benefit ini, detail bisa carai lain waktu yang lebih lega atau bahkan mempercayakannya saja kepada orang TI.

http://www.transforma-institute.biz

Read Users' Comments (0)