Kamis, 19 Agustus 2010

Belajar bikin Macro dengan VBA untuk Excel


excelPerkenalan dengan program MS Excel sudah lama dan penggunaannya masih sebatas pada hal-hal yang sederhana.

Tiba-tiba entah dari mana ada keinginan untuk tahu tentang apa itu VBA… Berdasar dari dengalaman beberapa kali mengajar MS Excel, memang mengasyikkan jika ternyata peserta pelatihan belum mengenal kelebihan dan kemampuan MS Excel. Dengan praktek beberapa trik agar bisa menyelesaikan pekerjan dengan MS Excel.

Ternyata keinginan mencoba menggunakan Macro dalam MS Excel untuk mengatasi pekerjaan muncul..

Nah dari situ ketemu ide yang namanya Visual Basic Application (VBA) for Excel.

Belajar dulu.. semoga bermanfaat untuk pelatihan berikutnya.

Ada yang sudah pengalaman bisa berbagi info disini..

Other Search Terms:
belajar macro excel,belajar vba excel,belajar excel macro,belajar makro excel,contoh macro excel,visual basic excel,belajar macro di excel,belajar vba macro excel,visual basic editor excel,belajar macro excell.

Tutorial on Excel Macros (VBA): With macros in Excel you will save a lot of time and do a lot more. Learn the skill and get a better paying job.

Excel Macros (VBA) Tutorial : Step by step even with no programming background you will learn what you need to accomplish small miracles with macros and business data in Excel.

Excel VBA. FREE Excel VBA Code & Excel Macro Help : Excel VBA: Excel VBA Macros. Free help on Excel Macros, from VBA to Custom Functions and more.

Excel VBA tutorial : This website provides free Excel VBA tutorial to help anyone to master VBA programming instantly.

Writing Your First VBA Function in Excel : Writing Your First VBA Function in Excel. Tip Contributed by Martin Green.Martin Green, Office Tips is a freelance Access and Excel trainer and developer

Mathtools.net : Excel/VBA : Add over 1200 Excel VBA examples directly into the Microsoft Excel Visual Basic Editor.

TechBookReport Excel VBA Tutorial : TechBookReport – Excel Visual Basic (VBA) tutorial.

Quick Excel Chart VBA Examples : The use of VBA in Microsoft Excel charting is a topic that would fill a large volume.

Other Search Terms:
tutorial macro excel,vba excel tutorial,excel macro tutorial pdf,tutorial tentang microsoft excel,vba macro excel tutorial,Tutorial VBA Macro English,tutorial monitoring captcha for ubuntu,tutorial membuat aplikasi dengan macro di excel,tutorial macro excell,tutorial macro excel pdf.

Pada suatu waktu ditanya oleh seseorang tentang menggunakan Excel untuk membuat rapot sekolah. Yang diinginkan yaitu mengubah angka menjadi kata, misal angka 89,08 menjadi Delapan Sembilan koma Nol Delapan.

Dari pembuatan macro sebelumnya yaitu mengubah angka menjadi kalimat untuk kebutuhan keuangan seperti dari posting sebelumnya dengan judul Macro Excel: Membuat fungsi terbilang, kemudian mencoba modifikasi beberapa saat maka dapatlah kami bagikan kepada pembaca seperti pada kode dibawah. Kode asli saya ambil dari Macro Excel: Number to Word conversion for various purpose in English. Sumber utama dari www.ozgrid.com.

Macro dibawah dapat didownload file excelnya, sehingga tinggal pakai saja.

Function toword(ByVal MyNumber)

Dim Temp

Dim Number, Cents

Dim DecimalPlace, Count

ReDim Place(9) As String

' Convert MyNumber to a string, trimming extra spaces.

MyNumber = Trim(Str(MyNumber))

' Find decimal place.

DecimalPlace = InStr(MyNumber, ".")

' If we find decimal place...

If DecimalPlace > 0 Then

' Convert cents

Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)

Cents = ConvertTens(Temp)

' Strip off cents from remainder to convert.

MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))

End If

Count = 1

Do While MyNumber <> ""

' Convert last 3 digits of MyNumber to English Number.

Temp = ConvertHundreds(Right(MyNumber, 3))

If Temp <> "" Then Number = Temp & Place(Count) & Number

If Len(MyNumber) > 3 Then

' Remove last 3 converted digits from MyNumber.

MyNumber = Left(MyNumber, Len(MyNumber) - 3)

Else

MyNumber = ""

End If

Count = Count + 1

Loop

' Clean up number.

Select Case Number

Case ""

Number = "Nol"

Case "Satu"

Number = "Satu"

Case Else

Number = Number

End Select

' Clean up cents.

Select Case Cents

Case ""

Cents = " koma Nol"

Case "Satu"

Cents = " koma Satu"

Case Else

Cents = " koma " & Cents

End Select

toword = Number & Cents

End Function
Private Function ConvertHundreds(ByVal MyNumber)

Dim Result As String

' Exit if there is nothing to convert.

If Val(MyNumber) = 0 Then Exit Function

' Append leading zeros to number.

MyNumber = Right("000" & MyNumber, 3)

' Do we have a hundreds place digit to convert?

If Left(MyNumber, 1) <> "0" Then

Result = ConvertDigit(Left(MyNumber, 1)) & " Nol "

End If

' Do we have a tens place digit to convert?

If Mid(MyNumber, 2, 1) <> "0" Then

Result = Result & ConvertTens(Mid(MyNumber, 2))

Else

' If not, then convert the ones place digit.

Result = Result & ConvertDigit(Mid(MyNumber, 3))

End If

ConvertHundreds = Trim(Result)

End Function
Private Function ConvertTens(ByVal MyTens)

Dim Result As String

' Is value between 10 and 19?

If Val(Left(MyTens, 1)) = 1 Then

Select Case Val(MyTens)

Case 10: Result = "Satu Nol"

Case 11: Result = "Satu Satu"

Case 12: Result = "Satu Dua"

Case 13: Result = "Satu Tiga"

Case 14: Result = "Satu Empat"

Case 15: Result = "Satu Lima"

Case 16: Result = "Satu Enam"

Case 17: Result = "Satu Tujuh"

Case 18: Result = "Satu Delapan"

Case 19: Result = "Satu Sembilan"

Case Else

End Select

Else

' .. otherwise it's between 20 and 99.

Select Case Val(Left(MyTens, 1))

Case 0: Result = "Nol "

Case 2: Result = "Dua "

Case 3: Result = "Tiga "

Case 4: Result = "Empat "

Case 5: Result = "Lima "

Case 6: Result = "Enam "

Case 7: Result = "Tujuh "

Case 8: Result = "Delapan "

Case 9: Result = "Sembilan "

Case Else

End Select

' Convert ones place digit.

Result = Result & ConvertDigit(Right(MyTens, 1))

End If

ConvertTens = Result

End Function
Private Function ConvertDigit(ByVal MyDigit)

Select Case Val(MyDigit)

Case 0: ConvertDigit = "Nol"

Case 1: ConvertDigit = "Satu"

Case 2: ConvertDigit = "Dua"

Case 3: ConvertDigit = "Tiga"

Case 4: ConvertDigit = "Empat"

Case 5: ConvertDigit = "Lima"

Case 6: ConvertDigit = "Enam"

Case 7: ConvertDigit = "Tujuh"

Case 8: ConvertDigit = "Delapan"

Case 9: ConvertDigit = "Sembilan"

Case Else: ConvertDigit = ""

End Select

End Function
Other Search Terms:
raport excel,tutorial macro excel,Macro Excel,raport dengan excel,macros excel,membuat raport dengan excel,tutorial macros excel,membuat raport,penulisan raport,raport menggunakan exel.

Pengguna MS Excel yang sering menggunakannya untuk hitung keuangan, mungkin sangat ingin dari hasil yang diperoleh ada tambahan kalimat yang menyebutkan jumlah hasil perhitungan. Misal hasil perhitungan: Rp 1.000.000,- , muncul kalimat: Satu Juta Rupiah.

Dibawah kami bantu untuk merealisasikan keinginan tersebut. Kode ini saya peroleh dari internet yang ditujukan untuk pengguna openoffice. Setelah saya tes di Excel ternyata dapat berfungsi dengan baik.

Pekerjaan mengubah dari angka menjadi kalimat seperti diatas disebut FUNGSI TERBILANG. Fungsi terbilang akan tercatat dalam daftar function di excel dalam kelompok user defined, artinya fungsi yang dibuat oleh pengguna.

Ok kita mulai ya…

Langkah 1: Buka Workbook Excel.

Langkah 2: Buka Visual Basic Application Editor. Alt+F11 atau melalui menu menu Tools.

Hasil membuka VBA editor seperti gambar dibawah.

Langkah 3: Membuka MODUL baru.

Hasil insert modul, akan tersedia modul yang siap dipakai.

Langkah 4: Mengisi Modul dengan script Fungsi berikut, dengan copy dan paste ke dalam modul.

Function TeksKeAngka(ByVal n As Double) As String
Dim sSatuan()
Dim s As String
sSatuan() = Array("nol", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas", "dua belas", "tiga belas", "empat belas", "lima belas", "enam belas", "tujuh belas", "delapan belas", "sembilan belas", "dua puluh")
s = ""
If n > 999 and n < s = "seribu" n =" n" n =" 0" tekskeangka =" s" s =" s"> 199 Then
s = s & sSatuan(Fix(n / 100)) & " ratus"
n = n MOD 100
If n = 0 Then
TeksKeAngka = s
Exit Function
End If
s = s & " "
End If
If n > 99 and n < s = "seratus" n =" n" n =" 0" tekskeangka =" s" s =" s"> 20 and n < s =" s" n =" n" n =" 0" tekskeangka =" s" s =" s" tekskeangka =" s">
Function Terbilang(ByVal n) As String
Dim sBil()
sBil = Array( "", "ribu", "juta", "milyar", "triliun", "quadriliun")
Dim i As Integer
Dim iInt As Integer
Dim s As String
Dim dInt As Double
dInt = Fix(n)
If (dInt < terbilang =" TeksKeAngka(CInt(dInt))" i =" 0" s = ""> 0
iInt = CInt(dInt - Fix(dInt / 1000) * 1000)
If iInt <> 0 Then
If Len(s) > 0 Then s = " " & s
s = TeksKeAngka(iInt) & " " & sBil(i) & s
End If
i = i + 1
dInt = Fix(dInt / 1000)
Loop
Terbilang = s
End Function

Langkah 5: Tes fungsi di Worksheet Excel.

Hasil testing seperti dibawah.

Langkah 6: SIMPAN BOOK tersebut, dan gunakan book tersebut jika akan digunakan untuk aktifitas perhitungan. Karena Fungsi HANYA melekat atau akan aktif pada workbook tersebut, bukan pada aplikasi MS Excel secara permanen. Atau jika Anda sudah memiliki workbook yang sudah ada hasil hitungan dan ingin ditambahi fungsi terbilang bisa mengikuti langkah 1-6.

Selesai. Selamat mencoba.

Dan silakan dicoba file excelnya yang saya buat.


2 komentar:

  1. sekedar sharing fungsi terbilang punya saya pak.....
    http://norkuys.wordpress.com/2010/08/27/add-ins-terbilang-23-baris/

    BalasHapus
  2. O o... ada yang mau nengok dan mau berkomentar diblogku ini ya... Maaf ya mas kalau kasih responya terlambat, habis lagi sangat padat nih dengan tempat cangkulan.

    BalasHapus