Cara Membuat ComboBox Bertingkat UserForm VBA Excel
ComboBox merupakan item Toolbox Controls๐ untuk menampilkan satu kriteria data yang terdapat 2 (dua) atau lebih sub kriteria data yang kita miliki baik itu berupa angka, huruf, karakter yang sudah dibuat dan disusun sebelumnya untuk selanjutnya memilih salah satu dari susunan sub kriteria data tersebut.
Fungsinya tidak jauh berbeda dengan Textbox, hanya pada ComboBox kita tidak perlu lagi mengetik data dan hanya memilih salah satu dari banyak data yang ditampilkan. ComboBox ini sangat bermanfaat apabila data tersebut banyak dan proses pengimputan datanya berulang.
Pada Postingan sebelumnya telah dibahas mengenai cara membuat kode id otomatis, dan buat kalian yang baru bergabung silahkan baca materinya di "Cara Membuat Kode ID Otomatis VBA Excel๐". Seperti pembuka diatas, kali ini kita akan membahas mengenai salah satu toolbox control yang sering kali digunakan yaitu ComboBox. ComboBox ini bisa dibagi menjadi 2 jenis yaitu:ComboBox Dinamis yaitu ComboBox yang berdiri sendiri, dimana daftar data yang ditampilkan tidak berkaitan/berhubungan dengan ComboBox Lainnya.
ComboBox Bertingkat yaitu ComboBox dimana daftar data yang ditampilkan berkaitan/berhubungan dengan ComboBox Lainnya. Bisa dikatakan, saat memilih data pada satu ComboBox, maka daftar data pada ComboBox lainnya akan ikut berubah. Untuk lebih memahami, kalian simak baik-baik penjelasan selanjutnya.
A. Membuat ComboBox Dinamis
Untuk membuat ComboBox Dinamis ada 2 (dua) cara yang menurut Admin lebih mudah dipahami yaitu:
1. Cara Pertama
Admin menganggap kalian semua sudah dapat membuat Form Penginputan pada UserForm VBA Excel menggunakan beberapa toolbox controls dan mengubah beberapa pengaturan dipropertiesnya. Jika belum, kalian buka kembali beberapa postingan Admin sebelumnya yang membahas hal tersebut.
Langsung saja kita bahas mengenai cara pertama membuat ComboBox tersebut sebagai berikut:
1. Tambahkan ComboBox sesuai gambar dibawah ini, ubah (name) menjadi "Kecamatan" dan "Kelurahan" (ingat tanpa tanda petik), untuk pengaturan lainnya sesuaikan seperti toolbox control yang dibuat sebelumnya.
2. Selanjutnya menuju ke code window, buat sebuah perintah makro dengan object "Userform" dengan prosedur "Initialize", atau kalian kalian langsung copy paste kode makro dibawah ini:
Private Sub UserForm_Initialize()
With Kecamatan
.AddItem "Kecamatan A"
.AddItem "Kecamatan B"
.AddItem "Kecamatan C"
.AddItem "Kecamatan D"
End With
End Sub
Penjelasan Kode Makro diatas sebagai berikut:
Private Sub UserForm_Initialize() yaitu untuk membuat sebuah prosedur agar data yang ada dapat ditampilkan secara otomatis ketika aplikasi dijalankan, namun kali ini menggunakan prosedur Initialize bukan Active, yang tutup dengan End Sub.
With Kecamatan yaitu sebuah perintah bahwa data yang akan ditampilkan berada pada ComboBox yang telah diubah namanya tadi menjadi "Kecamatan", makro ini ditutup dengan End With.
.AddItem "Kecamatan A" sampai .AddItem "Kecamatan D", yaitu untuk menambahkan daftar nama kecamatan yang akan ditampilkan pada ComboBox "Kecamatan" nantinya yang terdiri dari Kecamatan A sampai Kecamatan D.
3. Jalankan Run atau tekan shortcut keyboard
2. Cara Kedua
Cara kedua ini lebih sering Admin pakai dalam membuat sebuah ComboBox Dinamis maupun ComboBox Bertingkat karena lebih mudah dan merapikan makro di code window. Apabila ComboBox yang digunakan banyak dan berulang, maka cara kedua ini lebih tepat untuk digunakan. Adapun caranya, sebagai berikut:
1. Lihat pada artikel "Tutorial Belajar VBA Excel Autodidak Bagi Pemula๐" yang telah dibuat sebelumnya, rename "sheet2" menjadi "ComboBox" (gambar 1) agar lebih memudahkan nantinya. Setelah itu buat daftar untuk ComboBox Kecamatan seperti pada (gambar 2) dibawah ini:
2. Setelah itu masuk ke code window (jendela kode) VBE lalu masukkan kode makro dibawah ini:
Private Sub UserForm_Initialize()
Kecamatan.List = Worksheets("ComboBox").Range("A2:A5").Value
End Sub
Penjelasan kode makro diatas adalah sebagai berikut:
Private Sub UserForm_Initialize() yaitu untuk membuat sebuah prosedur agar data yang ada dapat ditampilkan secara otomatis ketiga aplikasi dijalankan, namun kali ini menggunakan prosedur Initialize bukan Active, yang tutup dengan End Sub.
Kecamatan.List = Worksheets("ComboBox").Range("A2:A5").Value yaitu daftar data yang akan ditampilkan pada ComboBox "Kecamatan" (combobox yang awal telah diubah namanya menjadi kecamatan) adalah data yang ada pada worksheet "ComboBox" (sheet2 yang telah direname sebelumnya) Range A2:A5. (perhatikan gambar ke 2 diatas)
B. Membuat ComboBox Bertingkat
Sesuai yang dijabarkan diatas, ComboBox Bertingkat terdiri dari 2 atau lebih ComboBox dimana daftar datanya saling berkaitan/berhubungan. Pada contoh pembelajaran membuat ComboBox Bertingkat kali ini, kita akan membuat ComboBox "Kecamatan" untuk menampilkan daftar kecamatan dan pada saat yang sama, dimana ComboBox "Kelurahan" akan menyesuaikan untuk menampilkan daftar nama kelurahan sesuai nama kecamatan yang dipilih. Untuk lebih jelasnya, perhatikan cara membuat ComboBox Bertingkat berikut:
1. Kembali ke form database excel pada worksheet "ComboBox" yang dibuat tadi, tambahkan data kelurahan untuk setiap kecamatan seperti pada gambar dibawah ini:
Kecamatan A terdiri dari:
- Kelurahan A1
- Kelurahan A2
- Kelurahan A3
- Kelurahan A4
Kecamatan B terdiri dari:
- Kelurahan B1
- Kelurahan B2
- Kelurahan B3
Kecamatan C terdiri dari:
- Kelurahan C1
- Kelurahan C2
- Kelurahan C3
- Kelurahan C4
Kecamatan D terdiri dari:
- Kelurahan D1
- Kelurahan D2
- Kelurahan D3
2. Setelah itu kembali ke UserForm lalu klik kanan ComboBox "Kecamatan" dan Pilih View Code.
3. Selanjutnya akan ditampilkan makro secara otomatis pada code window seperti gambar dibawah ini yang diberi tanda kotak.
Makro diatas menjelaskan bahwa objek yang di pilih adalah ComboBox "Kecamatan" dan prosedurnya adalah "Change" yang artinya bahwa setiap data yang dipilih pada ComboBox "Kecamatan" berubah maka perintah selanjutnya yang akan ditambahkan pada prosedur tersebut akan menyesuaikan sesuai nama kecamatan yang dipilih. Ini juga menjelaskan kenapa memilih ComboBox "Kecamatan" untuk membuat sebuah prosedur baru bukan ComboBox "Kelurahan", karena ComboBox "Kecamatan" yang menjadi acuan untuk menampilkan data pada ComboBox "Kelurahan".
4. Selanjutnya menambahkan perintah untuk menampilkan daftar kelurahan dengan menambahkan makro dibawah ini diantara Private Sub Kecamatan_Change() dan End Sub.
If Kecamatan.Text = Worksheets("ComboBox").Range("A2").Value Then
Kelurahan.List = Worksheets("ComboBox").Range("C2:C5").Value
ElseIf Kecamatan.Text = Worksheets("ComboBox").Range("A3").Value Then
Kelurahan.List = Worksheets("ComboBox").Range("D2:D4").Value
ElseIf Kecamatan.Text = Worksheets("ComboBox").Range("A4").Value Then
Kelurahan.List = Worksheets("ComboBox").Range("E2:E5").Value
ElseIf Kecamatan.Text = Worksheets("ComboBox").Range("A5").Value Then
Kelurahan.List = Worksheets("ComboBox").Range("F2:F4").Value
End If
Penjelasan makro diatas sebagai berikut:
If Kecamatan.Text = Worksheets("ComboBox").Range("A2").Value Then yaitu menggunakan fungsi If (jika), then (maka) yang berarti jika dari daftar data yang ditampilkan pada ComboBox "Kecamatan" yang dipilih adalah nama kecamatan yang sesuai dengan data pada worksheet "ComboBox" Cell "A2" dalam hal ini "Kecamatan A" (lihat kembali form database excel yang dibuat tadi), maka selanjutnya...
Kelurahan.List = Worksheets("ComboBox").Range("C2:C5").Value yaitu untuk melanjutkan perintah sebelumnya yang artinya pada ComboBox "Kelurahan" akan menampilkan daftar nama kelurahan yang ada pada worksheet "ComboBox" Range("C2:C5"). (lihat kembali form database excel yang dibuat tadi).
selanjutnya Elseif (dan jika) yaitu perintah yang sama seperti diatas dan ditutup dengan End If.
5. Tahap akhir Run atau tekan shortcut keyboard
Untuk topik pembahasan ini kalian dapat juga melihatnya di Channel Youtube Butta Toa๐. Semoga postingan mengenai cara membuat ComboBox bertingkat ini dapat bermanfaat buat kalian semua. Apabila ada kritik, saran maupun pertanyaan, silahkan ajukan di form komentar atau di form kontak, Wassalam.
Post a Comment for "Cara Membuat ComboBox Bertingkat UserForm VBA Excel"