Drop-Down List Dinamis di VBA Excel untuk Data yang Selalu Berubah

Mengapa Drop-Down List Perlu Dibuat Dinamis?

Drop-down list merupakan salah satu fitur yang paling sering digunakan dalam formulir Excel. Dengan daftar pilihan, pengguna dapat memilih data tanpa harus mengetiknya secara manual sehingga risiko kesalahan input menjadi lebih kecil.

Namun, bagaimana jika daftar pilihan tersebut terus bertambah?

Misalnya, daftar produk bertambah setiap minggu, daftar pelanggan terus diperbarui, atau daftar divisi perusahaan berubah dari waktu ke waktu. Jika sumber data masih ditentukan secara manual, Anda harus terus mengubah referensi validasi setiap kali ada penambahan data.

Untuk mengatasi masalah tersebut, Anda dapat membuat drop-down list dinamis menggunakan VBA Excel.


Apa yang Dimaksud dengan Drop-Down List Dinamis?

Drop-down list dinamis adalah daftar pilihan yang secara otomatis menyesuaikan jumlah data pada sumbernya.

Sebagai contoh, hari ini daftar produk hanya berisi lima item. Minggu depan bertambah menjadi delapan item. Tanpa mengubah aturan validasi, seluruh produk baru langsung muncul pada daftar pilihan.

Pendekatan ini membuat workbook lebih mudah dipelihara dan mengurangi pekerjaan manual.


Menyiapkan Data Sumber

Misalkan Anda memiliki daftar produk pada worksheet Data.

A
Laptop
Printer
Scanner
Monitor
Keyboard

Data tersebut akan menjadi sumber bagi drop-down list.


Menentukan Baris Terakhir

Karena jumlah data dapat berubah, langkah pertama adalah mencari baris terakhir.

Dim LastRow As Long

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

Variabel LastRow akan selalu mengikuti jumlah data terbaru.


Membuat Referensi Range Secara Dinamis

Setelah mengetahui baris terakhir, buat alamat range sebagai sumber validasi.

Dim Sumber As String

Sumber = "=Data!$A$2:$A$" & LastRow

Jika data bertambah hingga baris ke-20, maka referensi otomatis berubah menjadi:

=Data!$A$2:$A$20

Membuat Drop-Down List

Selanjutnya terapkan validasi pada sel tujuan.

With Range("B2").Validation

    .Delete

    .Add _
        Type:=xlValidateList, _
        Formula1:=Sumber

End With

Setiap kali makro dijalankan, daftar pilihan akan diperbarui sesuai data terbaru.


Menggunakan Named Range

Cara lain yang lebih praktis adalah menggunakan Named Range.

Misalnya Anda memiliki Named Range bernama DaftarProduk.

With Range("B2").Validation

    .Delete

    .Add _
        Type:=xlValidateList, _
        Formula1:="=DaftarProduk"

End With

Jika Named Range dibuat secara dinamis, Anda tidak perlu mengubah kode VBA saat jumlah data bertambah.


Studi Kasus

Sebuah perusahaan memiliki formulir pemesanan barang.

Daftar produk selalu bertambah ketika ada produk baru.

Tanpa drop-down dinamis, administrator harus memperbarui validasi secara manual setiap minggu.

Dengan VBA, proses tersebut cukup dilakukan menggunakan satu prosedur.

Dim LastRow As Long
Dim Sumber As String

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

Sumber = "=Data!$A$2:$A$" & LastRow

With Worksheets("Form").Range("C2").Validation

    .Delete

    .Add _
        Type:=xlValidateList, _
        Formula1:=Sumber

End With

Setelah produk baru ditambahkan pada worksheet Data, daftar pilihan pada worksheet Form akan ikut bertambah ketika makro dijalankan.


Kesalahan yang Sering Dilakukan

Tidak Menghapus Validasi Lama

Jika validasi sudah ada, VBA dapat menghasilkan error saat menambahkan aturan baru.

Biasakan menggunakan:

.Validation.Delete

sebelum memanggil .Add.


Referensi Range Tidak Berubah

Menulis alamat seperti berikut:

=Data!$A$2:$A$10

membuat daftar hanya sampai baris ke-10.

Gunakan LastRow agar referensi selalu mengikuti jumlah data.


Data Sumber Mengandung Sel Kosong

Jika terdapat banyak sel kosong di tengah daftar, pengalaman pengguna menjadi kurang nyaman karena drop-down akan menampilkan pilihan kosong.

Pastikan data sumber tersusun dengan rapi.


Tips Praktis

💡 Simpan seluruh data sumber pada worksheet khusus agar lebih mudah dikelola.

💡 Gunakan teknik Last Row untuk membuat referensi yang selalu diperbarui.

💡 Jika workbook digunakan dalam jangka panjang, pertimbangkan menggunakan Named Range dinamis.

💡 Jalankan prosedur pembaruan validasi setiap kali data sumber berubah.

💡 Berikan nama worksheet yang jelas agar kode lebih mudah dipahami.


Ringkasan

TeknikFungsi
Validation.Add Membuat drop-down list
Validation.Delete Menghapus aturan lama
LastRow Menentukan jumlah data terbaru
Formula1 Menentukan sumber daftar
Named Range Membuat referensi lebih fleksibel

Kesimpulan

Drop-down list dinamis merupakan solusi yang lebih fleksibel dibandingkan daftar pilihan statis. Dengan menggabungkan teknik Last Row, Data Validation, dan Named Range, Anda dapat membuat daftar pilihan yang otomatis mengikuti perubahan data tanpa perlu memperbarui validasi secara manual. Teknik ini sangat bermanfaat untuk formulir input, sistem inventaris, maupun aplikasi Excel yang terus berkembang.

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.