Apa Gunanya Belajar VBA Excel

Panji Ryan Widhi
0
Kira-kira apakah teman-teman sudah tahu apakah gunanya atau manfaatnya belajar visual basic for application atau disingkat VBA pada Excel?
Jika belum tahu, VBA excel macro digunakan untuk membantu pekerjaan rutinitas sehari-hari dengan memakai aplikasi microsoft excel sehingga pekerjaan dapat diselesaikan dengan cepat tanpa harus melakukan manual.

Bukan hanya itu, VBA excel dapat digunakan untuk memecahkan permasalahan secara cepat dan akurat bergantung dari kebutuhan setiap orang, entah dari menyimpan dan memberi nama file, mencari angka tertentu, mencari data-data dengan format tertentu dll dengan hanya beberapa kali atau satu kali klik tombol saja.

Berikut adalah beberapa sebagian kode VBA dasar (diambil dari bab3 Cara Asik Bikin Tool Sendiri, yang mungkin paling banyak digunakan, beberapa kode ini dapat diedit dan digabungkan menjadi suatu rangkaian command sehingga mempercepat dan mempermudah pekerjaan kita.

3.1 Membuka File

Workbooks.Open Filename:= _
        "D:\Folderutama\Subfolder1 \Subfolder2\namafileanda.xls"
(penjelasan : serangkaian perintah di atas maksudnya adalah macro akan membuka file yang kita inginkan, tapi sebelumnya kita harus tahu dulu letak file tersebut secara detil di bagian drive dan folder apa. Seperti pada contoh, saya membuka pada drive D dan ada di folder utama lalu masuk ke bagian subfolder1 dan subfolder2 dengan file name namafileanda.xls)
3.2 Menampilkan pilihan kotak yes no :
Msg = "Sudah Update GCELL?"
      Style = vbYesNo + vbQuestion + vbDefaultButton2
      response = MsgBox(Msg, Style)
If response = vbYes Then
MsgBox ("ok sip, lanjutkan")
    Else MsgBox ("hapus dahulu baris yang kosong")
End If
(penjelasan : serangkaian perintah di atas maksudnya adalah ketika macro dijalankan maka akan muncul window notifikasi berisi pilihan yes atau no. Jika anda mengklik yes maka akan muncul pesan ok sip lanjutkan, dan jika yang diklik no maka akan muncul pesan hapus dahulu baris yang kosong)
Perhatikan juga fungsi IF di atas selalu dibarengi dengan THEN lalu ELSE (jika ada kondisi lain) dan ditutup dengan END IF. Anda dapat memvariasikannya dengan perintah lainnya, misalnya jika Yes maka akan melakukan suatu pekerjaan A sedangkan jika No maka pekerjaan B.

3.3 Menulis rumus di cell tertentu :

Cells(3, 6).Value = "=LEFT(R[-1]C[-4],3)"
(penjelasan : Maksudnya adalah menuliskan rumus Left pada cell ke atas minus satu dan ke kiri minus 4 dan ambil sebanyak 3 karakter) Agar tidak bingung, sebenarnya buat dahulu rumusnya di excel, lalu ubah option ke R1C1 reference style, dan tinggal copy deh formula di kotak tadi yang kita ketik. Lihat gambar berikut :


1.      Ketik formula anda pada cell yang anda inginkan, contoh di F3, jika lupa apa itu formula left silahkan simak bab 1 ya.
2.      Ubah formulas pada tab File - Option- Formulas, lalu centang R1C1 reference style dan klik OK
3.      Sekarang kembali pada sheet excel anda dan lihat perubahan formulanya menjadi RC. Formula inilah yang anda ketikkan pada isi program VBA tadi. Oh ya setelah anda selesai menggunakan formulanya, jangan lupa untuk mengembalikan ke awal ya, dengan un-centang tanda R1C1 tadi.
Hasil dari formula di atas yang sebenarnya adalah =LEFT(B2,3) adalah lak


3.4 Copy Paste Value dan Escape :

Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
(penjelasan : Bahasa di atas maksudnya adalah mengcopy cell yang saat itu sedang terselect dan mempaste value di tempat cell yang sama, biasanya ini digunakan untuk menghilangkan formula, lalu application.cutcopymode = false maksudnya adalah kita menekan keyboard yang tulisannya Esc, tau kan? Di keyboard ujung atas sebelah kiri.) Btw Bahasa di atas adalah hasil dari record macro, nah sekarang saya infokan Bahasa simple untuk copy paste normalnya.

3.5 Copy Paste Cell ke Cell lain di sheet yang sama

Range("B2").Copy Range("H1")
(penjelasan : ini untuk copy cell B2 dan mem-paste ke cell H1 di sheet yang sama)

3.6 Copy Paste Cell ke Cell di worksheet / sheet lain

Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet2").Range("A1")
(penjelasan : ini untuk copy cell A1 di sheet1 dan mem-paste ke cell A1 di sheet yang berbeda bernama Sheet2)

3.7 Melakukan filter (dalam hal ini bilangan 00 sampai 07) :

ActiveSheet.Range("$A$1:$S$100").AutoFilter Field:=6, Criteria1:=Array( _
        "00", "01", "02", "03", "04", "05", "06", "07"), Operator:=xlFilterValues
 (penjelasan : filter kolom ke 6 dari range A1 sampai S100 yang isinya bilangan 00 sampai 07. Ini adalah hasil dari record macro, jika anda bingung dapat melakukan record macro untuk melihat hasil VBAnya)

3.8 Memfilter kriteria tertentu dan mengcopy ke cell yang diinginkan

Sub cobafiltercopy()
Range("Master").AdvancedFilter Action:=xlFilterCopy, criteriaRange:=Range("Kriteria"), CopyToRange:=Range("Hasil"), Unique:=False
End Sub
(penjelasan : Master adalah range sumber data yang sudah kita ubah (dapat anda ganti menjadi range(“A1:C13”), Kriteria adalah apa yang ingin dIfilter, dan Hasil adalah tempat cell hasil dari copy-an yang sudah dIfilter tadi)
Contoh Ini master databasenya :
Hasilnya untuk kriteria laki laki adalah :

3.9 Membuat monitor layar kita tidak mengikuti proses pergerakan VBA

Tambahkan ini di depan program > application.screenupdating = false
Kemudian di akhir program tambahkan > application.screenupdating = true

3.10 Menghapus semua isi baris tertentu yang dikehendaki :

Sub hapusbaris()
Dim lastrow As Integer
Sheets("hapus baris").Select
    lastrow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
    For i = lastrow To 2 Step -1
        If (Cells(i, 1).Value) = "xx" Then
            Cells(i, 1).EntireRow.Delete
        End If
    Next i
    MsgBox ("Finish")
End Sub
(penjelasan : menghapus semua baris dari semua kolom 1 dikerjakan dari paling bawah yang ada text xx nya, lastrow adalah kalimat bebas yang kita tentukan sendiri yang penting ada artinya yah, dalam hal ini yaitu baris terakhir. Jadi karena baris terakhir adalah bentuk angka maka saya dimensioningkan ke dalam bentuk integer, btw penjelasan soal Dim, integer, string, dan kawan-kawan nanti ya akan dibahas juga.) Satu lagi jika anda tidak ingin mendelete baris tersebut namun hanya ingin menghapusnya, maka ganti baris kode Cells(i, 1).EntireRow.Delete  dengan Cells(i, "1").EntireRow.ClearContents

3.11 Rumus Menghitung jarak antar koordinat :

Sebelum ke Bahasa macro, kita definisikan dulu formula excel biasanya seperti ini :
=6371*ACOS(COS(RADIANS(90-D2))*COS(RADIANS(90-$F$2))+SIN(RADIANS(90-D2))*SIN(RADIANS(90-$F$2))*COS(RADIANS(C2-$E$2)))
(penjelasan : jangan pusingkan angkanya darimana, yang perlu anda ubah adalah cellnya disesuaikan dengan tempat cell anda mengetik formulanya. Di contoh D2 dan F2 adalah latitude site 1 dan latitude site 2, sedangkan C2 dan E2 adalah longitude site 1 dan site 2.)
Kemudian anda dapat memasukkan ke dalam VBA seperti ini, misalnya anda ingin hasil jaraknya ditulis di cell/range G2 :
Range("G2").Formula = =6371*ACOS(COS(RADIANS(90-D2))*COS(RADIANS(90-$F$2))+SIN(RADIANS(90-D2))*SIN(RADIANS(90-$F$2))*COS(RADIANS(C2-$E$2)))"
Hasil yang keluar adalah dalam bentuk kilometer, itulah selisih jarak antar kedua koordinat.

3.12 Memberikan pesan pop up selesai plus informasi

MsgBox "Done!" & vbCrLf & vbCrLf & "by namakamu" & vbCrLf & "emailkamu", vbInformation, "note"
 (penjelasan : anda dapat mengganti bagian nama,email,dan note)

3.13 Menentukan baris paling terakhir

lastrow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
(penjelasan : 1 adalah kolom yang hendak dicari baris paling terakhirnya dan jangan lupa dimensioningkan dulu lastrownya sebagai integer atau long)

3.14 Menampilkan status VBA sedang running

Application.DisplayStatusBar = True
Application.StatusBar = "Searching..."
Application. StatusBar = False
(penjelasan : sebaiknya tidak perlu ditambahkan karena malah membuat program berjalan lebih lambat)

3.15 Menyimpan file di tempat yang dikehendaki

Ini sebagai .txt :
ActiveWorkbook.SaveAs Filename:="D:\folderutama\subfolder1\subfolder2\" & "Nama File Anda " + Format(Now(), "YYYYMMDD_hhmmss") _
& ".txt", FileFormat:=xlText
Sebagai xlsx sama tinggal ganti aja “.txt”nya dan fileformatnya ganti xlOpenXMLWorkbook :
ActiveWorkbook.SaveAs Filename:="D:\folderutama\subfolder1\subfolder2\" & "Nama File Anda " + Format(Now(), "YYYYMMDD_hhmmss") _
& ".xlsx", FileFormat:=xlOpenXMLWorkbook

(Penjelasan : arahkan secara detil ingin di-save di drive mana dan folder mana, anda tinggal mengganti bagian ini D:\folderutama\subfolder1\subfolder2\" & "Nama File Anda


Belum paham?
ya belum paham jika anda tidak sambil mempraktekkannya pada lembar kerja VBA dari excel anda.
Panduan dasar yang membantu anda dapat membuat sendiri tool dari VBA Excel atau belajar excel dengan mudah dan menyenangkan melalui ebook + elearning dapat dilihat di website ini http://diapps.my.id/vbabasic

Semoga dapat membantu membuat pekerjaan excel menjadi lebih cepat, akurat, dan efektif.

Have fun with your code.


belajar macro excel pdf
cara membuat macro di excel 2013
contoh macro excel
fungsi vba
belajar excel dasar
cara membuat aplikasi excel untuk database
kumpulan kode vba excel
belajar visual basic
belajar excel

Posting Komentar

0Komentar

Silahkan berkomentar yang baik di sini :) (no junk)

Posting Komentar (0)

Search Another