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'.
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()
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.
0 Response to "Langkah-langkah Pengurutan Data Excel Menggunakan VBA"
Posting Komentar