Belajar Sort di VBA Excel untuk Mengelola Data

Mengapa Proses Sort Perlu Diotomatisasi?

Saat jumlah data masih sedikit, mengurutkan data secara manual melalui menu Sort di Excel bukanlah pekerjaan yang sulit. Namun, situasinya akan berbeda jika Anda harus mengurutkan laporan setiap hari atau setiap kali data baru ditambahkan.

Misalnya, Anda ingin selalu menampilkan transaksi terbaru di bagian atas, mengurutkan pelanggan berdasarkan nama, atau menyusun nilai penjualan dari yang terbesar hingga terkecil. Jika dilakukan secara manual, pekerjaan ini akan memakan waktu dan berisiko terjadi kesalahan.

Dengan VBA Excel, proses pengurutan dapat dilakukan secara otomatis hanya dengan menjalankan sebuah makro.


Mengenal Metode Sort

VBA menyediakan objek Sort yang memungkinkan Anda mengurutkan data berdasarkan satu atau beberapa kolom.

Sebelum melakukan proses pengurutan, Anda perlu menentukan:

  • area data yang akan diurutkan;

  • kolom yang menjadi dasar pengurutan;

  • urutan Ascending atau Descending;

  • apakah data memiliki header atau tidak.


Mengurutkan Data Secara Ascending

Contoh berikut mengurutkan data berdasarkan kolom A dari A ke Z atau dari angka terkecil ke terbesar.

Range("A1:D20").Sort _
    Key1:=Range("A1"), _
    Order1:=xlAscending, _
    Header:=xlYes

Penjelasan:

  • Key1 menentukan kolom yang dijadikan acuan.

  • Order1:=xlAscending berarti urutan naik.

  • Header:=xlYes menunjukkan bahwa baris pertama merupakan header.


Mengurutkan Data Secara Descending

Untuk mengurutkan dari Z ke A atau dari angka terbesar ke terkecil, gunakan xlDescending.

Range("A1:D20").Sort _
    Key1:=Range("D1"), _
    Order1:=xlDescending, _
    Header:=xlYes

Cara ini sering digunakan untuk menampilkan penjualan tertinggi atau nilai terbesar.


Mengurutkan Berdasarkan Dua Kolom

VBA juga memungkinkan Anda menggunakan lebih dari satu kriteria pengurutan.

Range("A1:D20").Sort _
    Key1:=Range("C1"), _
    Order1:=xlAscending, _
    Key2:=Range("D1"), _
    Order2:=xlDescending, _
    Header:=xlYes

Pada contoh tersebut:

  • data diurutkan berdasarkan Kota terlebih dahulu;

  • jika terdapat kota yang sama, data akan diurutkan lagi berdasarkan Total Penjualan.


Mengurutkan Data Secara Dinamis

Dalam praktiknya, jumlah data biasanya terus berubah. Oleh karena itu, sebaiknya area pengurutan tidak ditulis secara tetap.

Dim LastRow As Long

LastRow = Cells(Rows.Count, "A").End(xlUp).Row

Range("A1:D" & LastRow).Sort _
    Key1:=Range("A1"), _
    Order1:=xlAscending, _
    Header:=xlYes

Dengan cara ini, seluruh data akan tetap diurutkan meskipun jumlah baris bertambah.


Studi Kasus

Misalkan Anda memiliki data berikut.

IDNamaKotaTotal
P003 Citra Malang 850000
P001 Andi Surabaya 1200000
P002 Budi Bandung 950000

Untuk mengurutkan berdasarkan Nama, gunakan kode berikut.

Range("A1:D4").Sort _
    Key1:=Range("B1"), _
    Order1:=xlAscending, _
    Header:=xlYes

Setelah makro dijalankan, data akan tersusun secara alfabetis berdasarkan nama pelanggan.


Mengurutkan Berdasarkan Tanggal

Sort juga dapat digunakan pada data bertipe tanggal.

Range("A1:E100").Sort _
    Key1:=Range("A1"), _
    Order1:=xlDescending, _
    Header:=xlYes

Hasilnya, tanggal terbaru akan berada di bagian atas tabel.


Kesalahan yang Sering Dilakukan

Tidak Menyertakan Seluruh Area Data

Jika hanya satu kolom yang dipilih saat proses sort, data pada kolom lain tidak akan ikut berpindah sehingga isi tabel menjadi tidak sesuai.

Pastikan area yang diurutkan mencakup seluruh tabel.


Salah Menentukan Header

Jika data memiliki header tetapi menggunakan Header:=xlNo, maka header dapat ikut berpindah bersama data.

Gunakan nilai yang sesuai dengan struktur worksheet.


Menggunakan Range Tetap

Kode seperti berikut:

Range("A1:D20")

akan menjadi kurang fleksibel ketika jumlah data berubah.

Gunakan teknik Last Row agar area pengurutan menyesuaikan isi worksheet.


Tips Praktis

💡 Selalu sertakan seluruh area tabel saat melakukan sort.

💡 Gunakan LastRow agar proses pengurutan bersifat dinamis.

💡 Pastikan header tidak ikut diurutkan.

💡 Gunakan lebih dari satu Key jika data memiliki beberapa tingkat pengurutan.

💡 Lakukan sort sebelum membuat laporan atau grafik agar hasilnya lebih mudah dibaca.


Ringkasan

PropertiFungsi
Sort Mengurutkan data
Key1 Kolom utama untuk pengurutan
Key2 Kolom kedua untuk pengurutan
xlAscending Urutan naik
xlDescending Urutan turun
Header Menentukan apakah tabel memiliki header

Kesimpulan

Menggunakan fitur Sort melalui VBA Excel membuat proses pengurutan data menjadi lebih cepat, konsisten, dan otomatis. Anda dapat mengurutkan data berdasarkan teks, angka, maupun tanggal, bahkan menggunakan beberapa kolom sekaligus sebagai dasar pengurutan. Dengan menggabungkan teknik Last Row dan Sort, makro akan tetap bekerja dengan baik meskipun jumlah data terus bertambah.

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.