Untuk membuat pengguna agar lebih mudah dalam mengentry data atau untuk membatasi isi atau item sesuai dengan yang telah kita sediakan, dapat menggunakan fasilitas daftar Drop-down yang umumnya biasa dibuat menggunakan bantuan Data Validation. kemudian pada pilihan Settings >> pilih Allow : dan dari daftar pilihan yang ada, pilih List.

Cara diatas hanya dapat diberlakukan untuk sel dalam workbook, bagaimana jika ingin membuat Daftar Drop-Down menggunakan ComboBox yang terdapat dalam UserForm akan tetapi isinya berdasarkan data yang terdapat dalam range yang sudah kita tentukan ?

Combobox merupakan salah satu kontrol VBA yang berfungsi untuk menampilkan data secara dropdown layaknya menu berbaris secara vertical, combobox dapat menampilkan data sebanyak satu kolom, dua kolom , tiga kolom dan banyak kolom , anda bisa mengecek kebearanya dalam properties ColumnCount. ColumnCount bisa berisi satu kolom, dua kolom, tiga kolom dan banyak kolom sesuai keinginan anda.


Untuk membuat dropdown pada combobox siapkan terlebih dahulu tabel sederhana seperti dibawah ini.

Ternyata Mimpi
No A B
1 Januari Jomblo
2 Februari Jomblo
3 Maret Nikah
4 April Punya Anak
5 Mei Punya Anak
6 Juni Punya Anak
7

Selesai membuat tabel, Sekarang masuk ke jendela VBE tekan Alt+F11, Insert Userform dan dalam Userform seret kontrol combobox dari toolbox. Saya akan bagikan kepada anda beberapa cara menggunakan atau membuat dropdown pada combobox



Kode macro Isi combobox Sesuai Sesuai Sheet adalah sebagai berikut

Sub COmbobox_01()
Set ExcelPro = Sheets("Sheet1")
On Error Resume Next
Dim Sel As Range
Dim NoDupes As New Collection
Set Status = ExcelPro.Range("A1", ExcelPro.Range("A1").End(xlDown))
Combobox1.Clear
For Each Sel In Status
NoDupes.Add Sel.Value, CStr(Sel.Value)
Next Sel
For Each Item In NoDupes
Combobox1.AddItem Item
Next Item
End Sub

Catatan :

Sumber isi combobox adalah sheet1 sel A1 kebawah ExcelPro.Range("A3", ExcelPro.Range("A3").End(xlDown))

Kode macro ini tidak menampilkan data yang kembar, artinya jika pada sel atau kolom A terdapat 10 nilai yang sama maka combobox haya menampilkan satu saja

Buat userform dengan satu kontrol combobox, biarkan namanya defauld lalu tulis kode macro diatas kedalam area kode userform


Kode macro Isi combobox Sesuai Sesuai Sheet adalah sebagai berikut

Sub COmbobox_02()
Set ExcelPro = Sheets("Sheet1")
Combobox1.Clear
Combobox1.ColumnCount = 2
For Each i In ExcelPro.Range("A:A")
With Me.Combobox1
.AddItem i.Value
.List(.ListCount - 1, 1) = i.Offset(0, 1).Value
End With
Next i
Combobox1.Value = Combobox1.List(0)
End Sub

Catatan :

Combobox menampilkan dua kolom Combobox1.ColumnCount = 2

Sumber isi combobox adalah sheet1 sel A1 kebawah sebagai kolom pertama ExcelPro.Range("A:A")

Meskipun sumber yang diambil hanya kolom A, akan tetapi combobox ini mampu menampilkan data pada kolom B, karena menampilkan dua kolom

Kolom kedua yang ditampilkan oleh combobox adalah kolom pertama setelah kolom A Combobox1.List(Combobox1.ListCount - 1, 1) = sPelanggan.Offset(0, 1).Value

Buat userform dengan satu kontrol combobox, biarkan namanya defauld lalu tulis kode macro diatas kedalam area kode userform

Kode macro Isi combobox Sesuai Sesuai Sheet adalah sebagai berikut

Private Sub UserForm_Initialize()
For Jmlh = 1 To 7
Nilai = Range("A" & Jmlh)
ComboBox1.AddItem Nilai
Next Jmlh
End Sub

atau

Private Sub UserForm_Activate()
brs = Cells(Rows.Count, "A").End(xlUp).Offset(0, 0).Row
For Nomor = 1 To brs
Datanya = Range("a" & Nomor)
ComboBox1.AddItem Datanya
Next Nomor
End Sub

For Jmlh = 1 To 7 Pengulangan nilai dari baris satu sampai baris 7, jika baris yang akan ditampilkan adalah 30 maka ganti angka 7 dengan 30
Range("A" & Jmlh) Menampilkan kolom A, jika yang akan ditampilkan dalam combobox adalah kolom B maka ganti huruf A dengan B


Demikianlah cara Menggunakan combobox, semoga dapat dipahami dengan benar
No comments