Trik Menghapus Raws Atau Record Kosong Di Microsoft Excel



Barangkali rekan-rekan blogger (yang terbiasa melakukan pengolahan data menggunakan Microsoft Excel, red) pernah atau bahkan sering menemukan case seperti gambar di bawah ini.

Apakah itu? Coba perhatikan raws (baris) yang berwarna hijau pada worksheet tersebut dengan seksama. Sudah menemukan sesuatu? Benar, baris-baris tersebut teridentifikasi “blank” atau kosong. Disamping mengganggu “pemandangan”, database seperti ini juga terkesan aneh dan tidak rapi. Tentu sangat melelahkan dan menjemukkan jika kita harus membersihkan baris-baris yang kosong tersebut secara manual. Bayangkan saja jika jumlah recordnya mencapai puluhan hingga ratusan ribu (seperti data BTS dibawah, red), tentu akan membutuhkan waktu lama untuk menyelesaikannya. Belum lagi resiko “human error” yang kerap terjadi akibat berkurangnya konsentrasi kita saat melakukan cleansing data seperti terhapusnya data dari record secara tidak sengaja, atau kejadian-kejadian “force majeure” lainnya seperti listrik mati, atau computer nge-hang misalnya. Lalu apa solusinya? Syntax VBA berikut adalah salah satu jawabannya.


Sub DeleteBlankRows()

'Deletes the entire row within the selection if _

'the ENTIRE row contains no data.

(Sok lah diartikeun sendiri hehe)

Dim Rw As Range

If WorksheetFunction.CountA(Selection) = 0 Then

MsgBox “No data found”, vbOKOnly, "www.old-nakula.blogspot.com"

Exit Sub

End If

Deklarasikanlah Rw sebagai “range”, sebab raw (baris) kosong yang kita hapus nantinya akan teridentifikasi sebagai range, baik itu single maupun multiple. WorksheetFunction.CountA(Selection) berfungsi untuk mengitung record yang ada di dalam selected column atau selected range, yakni di kolom atau di range yang nantinya kita pilih. Selection sendiri bersifat “flexible”, artinya kolom atau range bisa kita pilih secara bebas. Jika tidak ada satupun record di dalam kolom atau range yang kita pilih, maka system akan menampilkan jendela info “No data found” secara otomatis. Jika teridentifikasi ada record meskipun hanya satu, maka system akan melanjutkan eksekusi ke syntax berikutnya.

Selection.SpecialCells(xlCellTypeBlanks).Select

Setelah record teridentifikasi, maka system akan menjalankan perintah Selection.SpecialCells(xlCellTypeBlanks).Select yang berarti “blocking” blank raws.

For Each Rw In Selection.Rows

If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then

Selection.EntireRow.Delete

End If

Next Rw

End Sub

Kemudian eksekusi penghapusan/pembersihan/cleansing -atau apapun istilahnya- dimulai. System akan mendeteksi blank raws yang sudah terseleksi sebelumnya melalui syntax For Each Rw In Selection.Rows. Dan sekali lagi system akan melakukan validasi dan verifikasi melalui syntax WorksheetFunction.CountA(Selection.EntireRow). Jika jumlah “value” record yang berada di blank raws adalah “0”, maka raws tersebut akan didelate/dihapus melalui syntax Selection.EntireRow.Delete. Jika tidak, maka proses akan berakhir di End Sub. Demikianlah cara system mendeteksi dan memilah raws (baris-baris) yang kosong dan raws (baris-baris) yang berisi record/data. Bagaimana hasil akhirnya?. Lihat gambar berikut;

Simple dan praktis bukan?. Mudah-mudahan bermanfaat.




2 Respones to "Trik Menghapus Raws Atau Record Kosong Di Microsoft Excel"

Anonim mengatakan...

mohon diperjelas.... masih g paham cara memakainya


8 April 2012 pukul 23.14
Old Nakula mengatakan...

Dear Mas Bro Anonim,

1). Langkah pertama; aktifkan dulu vba anda (jika belum diaktifkan). Bisa dibaca disini caranya (untuk office 2010, red):
http://office.microsoft.com/en-us/excel-help/enable-or-disable-macros-in-office-files-HA010354316.aspx?CTT=1

2). Tekan alt+F11, klik menu Insert -> Insert Module. Masukkan syntax dibawah ini ke dalam module (sebagaimana yang dipaparkan diatas, red)

Sub DeleteBlankRows()
Dim Rw As Range

If WorksheetFunction.CountA(Selection) = 0 Then
MsgBox "No data found", vbOKOnly, "www.old-nakula.blogspot.com"
Exit Sub
Selection.SpecialCells(xlCellTypeBlanks).Select
End If
For Each Rw In Selection.Rows
If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then
Selection.EntireRow.Delete
End If
Next Rw

End Sub

3). Klik menu Run -> Run Sub/Userform, atau tekan F5 untuk menjalankan program.

4). Selesai


9 April 2012 pukul 08.11

Posting Komentar

 

Entri Populer

Recent Comments

Blog Statistic

Return to top of page Copyright © 2007 | Old Nakula