Skip to content Skip to sidebar Skip to footer

Cara Membuat ComboBox Bertingkat - Belajar VBA Excel Part 3

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 Sobat SD yang baru bergabung silahkan baca materinya di "Belajar VBA Excel Part 2". 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:

  1. ComboBox Dinamis yaitu ComboBox yang berdiri sendiri, dimana daftar data yang ditampilkan tidak berkaitan/berhubungan dengan ComboBox Lainnya.

  2. 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, Sobat SD 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 Sobat SD semua sudah dapat membuat Form Penginputan pada UserForm VBA Excel menggunakan beberapa toolbox controls dan mengubah beberapa pengaturan dipropertiesnya. Jika belum, Sobat SD 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.

Membuat Toolbox ComboBox

2. Selanjutnya menuju ke code window, buat sebuah perintah makro dengan object "Userform" dengan prosedur "Initialize", atau Sobat SD 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

Makro ComboBox

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 UserForm atau langsung tekan  F5  pada keyboard, maka hasilnya akan seperti gambar dibawah ini:

Tampilan ComboBox

 

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. Pada form database excel pembelajaran 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:

Daftar ComboBox Kecamatan

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)

3. Setelah itu jalankan Run atau tekan  F5 , maka jika hasilnya seperti cara pertama sebelumnya, maka Sobat SD sudah benar menuliskan makronya.

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, ComboBox "Kelurahan" juga 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  F5  untuk melihat hasilnya.


Untuk topik pembahasan ini kalian dapat juga melihatnya di Channel Youtube Sobat SD. Semoga postingan mengenai cara membuat ComboBox bertingkat ini dapat bermanfaat buat Sobat SD 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 - Belajar VBA Excel Part 3"