Langkah-langkah Pengurutan Data Excel Menggunakan VBA

Mengurutkan Data Excel Secara Manual

Pengurutan data di Excel adalah salah satu cara manual yang sering dilakukan untuk memanipulasi data. Ketika kita membuat prosedur yang lebih luas, maka mungkin kita perlu mengurutkan data Excel baik dalam urutan menaik ataupun dalam urutan menurun dengan VBA.

Misalkan kita ambil sebuah contoh data. Dengan VBA kita dapat mengurutkan tabel dalam excel dengan menggunakan sebuah ikon atau button, atau dengan melakukan pengurutan data yang lebih kompleks lagi menggunakan komponen kotak dialog. Dalam hal ini kita gunakan ikon 'Sort'.


Dari data diatas, jika kita akan mengurutkan data berdasarkan nama produk buah (kolom B), maka langkahnya adalah seperti pada gambar dibawah ini:


Kita pilih ikon Sort, dan kita pilih Sort By Column B, sehingga hasilnya adalah data tersebut akan terurut secara Ascending berdasarkan nama produk buah dimulai dari huruf terkecil hingga huruf terbesar (A - Z)

Tabel diatas merupakan data excel yang sudah terurut secara ascending berdasarkan nama produk buah.

Mengurutkan Data Excel Menggunakan VBA

Untuk melakukan proses yang sama dari cara manual menjadi cara menggunakan VBA, maka ada beberapa hal yang harus kita perhatikan, yaitu:

1. Pilih sejumlah sel dalam range excel data yang akan diurutkan.

2. Tentukan sel / kolom awal untuk mengurutkan.

3. Tentukan apakah dalam bentuk Ascending atau Descending.

Dalam VBA, prosedur pengurutan akan terlihat seperti ini:

    [A2: D10].Sort A2, xlAscending

Dimana Range nya adalah A2:A10, untuk sel awal berada di lokasi A2 dan gunakan sintaks xlAscending untuk perintah dalam urutan menaik (Ascending) (untuk urutan menurun gunakan perintah xlDescending).

Proses pada VBA terjadi secara instan dan sintaks diatas merupakan kode yang sangat sederhana untuk diterapkan. Cara tersebut adalah salah satu dari beberapa sintaks pengkodean dasar yang paling penting yang harus dapat diingat ketika kita menggunakan VBA dalam pengolahan data excel.

Mengurutkan Data Secara Dinamis Menggunakan VBA

Untuk membuat kode sintaks yang lebih dinamis, maka perlu ditambahkan range yang lebih dinamis dalam VBA, untuk memastikan bahwa dalam pengurutan dapat terjadi saat jangkauan range bertambah diluar dari sintaks yang sebelumnya sudah ditentukan.

Kode Excel dalam VBA untuk menghasilkan urutan data secara menaik (ascending) secara sederhana adalah sebagai berikut;

Sub SortIt1() 'VBA untuk mengurutkan secara ascending

 Range("A2",Range("D"&Rows.Count).End(xlUp)).Sort[A2], xlAscending

End Sub

Cara lain untuk menulis sintaks seperti di atas adalah dengan membuat range dinamis yang mengacu pada baris dan kolom. Kali ini kita akan coba mengurutkan range dalam urutan menurun (descending) dengan adanya perubahan kode dari sintaks di atas. 

Kode VBA berikut ini memiliki kelebihan karena sepenuhnya data yang akan diurutkan bersifat dinamis.

Sub SortIt1() 'VBA untuk mengurutkan secara descending

  [A1].CurrentRegion.Offset(1).Sort[A2],xlDescending

End Sub

Penting untuk dicatat bahwa header dimulai pada baris ke 1, sehingga pengurutan data dimulai dari Baris ke 2. Jika pengurutan dimulai dari baris ke 1 dan header tidak termasuk baris yang diurutkan, maka kode dapat ditulis seperti dibawah ini:

Option Explicit

Sub SortIt2() 'Excel VBA untuk header sortir

  Range("A1",Range("D" &Rows.Count).End(xlUp)).Sortir[D2], xlAscending, Header: = xlYes

End Sub

Kode di atas akan mengurutkan data dari A2 ke baris terakhir pada Kolom D dan dalam urutan Ascending. Indeks untuk pengurutan Ascending menggunakan angka 1 perintah xlAscending dapat diganti dengan 1 dan akan mendapatkan hasil yang sama. Sebaliknya untuk urutan menurun, kodenya hampir sama dengan kode di atas.

Sedangkan kode ini: Header: = xlYes, berfungsi untuk melakukan proses pengurutan data dengan menyertakan isi sel bagian header.

Sebaliknya kode ini: Header: = xlNo, berfungsi agar proses pengurutan data tidak menyertakan isi sel bagian header.

Jika pengurutan data dimulai pada baris kedua, maka tidak diperlukan perintah xlYes atau XlNo. Berikut ini adalah kode VBA Excel yang sama untuk urutan menurun.

Sub SortIt3() 'Excel VBA untuk urutan menurun.

   Range("A2",Range("D"&Rows.Count).End(xlUp)).Sortir[D2], xlDescending

End Sub

Untuk urutan menurun, untuk pengindeksan dapat menggunakan angka 2. Penggunaan angka 1 dan 2 pada bagian akhir sintaks cukup sederhana dan menghemat ruang penulisan kode.

Range("A2",Range("D"&Rows.Count).End(xlUp)).Sortir[D2],2 'dimana 2 mewakili perintah xlDescending

Mengurutkan Data Pada Multiple Sheet

Kita asumsikan bahwa semua sheet memiliki format yang sama dan kita harus mengurutkan semua sheet dalam urutan menaik. Berikut ini adalah kode yang dapat digunakan:

Option Explicit

Sub SortWS() 'VBA mengurutkan semua sheet dalam urutan menaik

Dim ws As Worksheet

For each ws In Sheets

   ws. [A1] .CurrentRegion.Offset (1) .Sort [C2], xlAscending

Next ws

End Sub

Pastikan kembali untuk setiap variabel yang dideklarasikan dan gunakan pengulangan for each untuk semua worksheet, kemudian urutkan setiap sheet berdasarkan pada kolom C. 

Masukan alamat email anda untuk mendapatkan artikel terbaru:

0 Response to "Langkah-langkah Pengurutan Data Excel Menggunakan VBA"

Posting Komentar