Sortir Data pada Listbox dengan Combobox pada UserForm



Hai sahabat Excel-ID, gimana kabarnya? semoga tetap dalam keadaan sehat dan masih tetap semangat untuk belajar excel.

Pada tulisan kali ini saya akan membahas bagaimana caranya mensortir data yang sesuai dengan kriteria di combobox. Kedua objek tersebut combobox dan listbox saya taruh di Userform dan ketika Anda memilih data pada combobox maka listbox akan tampil sesuai dengan kriteria yang dipilihnya.

Oke langsung saja langkah pertama silakan Anda buat terlabih dahulu databasenya di Sheet1 kemudian Anda ganti nama sheetnya menjadi "Database" Kenapa saya ganti? Ini akan memudahkan anda dalam menentukan database mana yang akan diambil.

Kemudian silakan masuk ke VBA editor dengan cara klik menu Depelover kemudian pilih View Code lalu tambahkan satu buah Userform. Untuk menambahkan userform sudah pernah saya bahas silakan Anda lihat kembali caranya.

Lalu dalam userform tersebut kita tambahkan 3 buah objek yang pertama Combobox, Kemudian Listbox dan yang berikutnya Anda juga bisa menambahkan Commandbutton. Untuk Commandbutton bisa ditambahkan bisa juga tidak karena tombol ini nantinya hanya digunakan untuk clear data saja dan ini juga bisa dilakukan pada object Combobox dengan menambahkan satu procedur khusus.

Desain Userform kira-kira tampilannya seperti berikut


Setelah desain Anda buat langkah berikutnya kita akan membuat coding nya. Silakan masukan coding berikut

Dim Data, Database
Option Compare Text

Private Sub ComboBox1_Change()
On Error Resume Next
If ComboBox1.Value = "" Then
Call TampilkanSemua
Else
  Item = Me.ComboBox1: n = 0
  Dim Tbl()
  For i = 1 To UBound(Database)
    If Database(i, 5) = Item Then
        n = n + 1: ReDim Preserve Tbl(1 To UBound(Database, 2), 1 To n)
        For k = 1 To UBound(Database, 2): Tbl(k, n) = Database(i, k): Next k
     End If
  Next i
  Me.ListBox1.Column = Tbl
End If
End Sub

Private Sub UserForm_Initialize()
  Set Data = Sheets("Database")
  Set d = CreateObject("Scripting.Dictionary")
  Database = Data.Range("A2:E" & Data.[A65000].End(xlUp).Row).Value
  Me.ListBox1.List = Database
  For i = LBound(Database) To UBound(Database)
     d(Database(i, 5)) = ""
  Next i
  Me.ComboBox1.List = d.keys
  Me.ListBox1.ColumnCount = 5
  Me.ListBox1.ColumnWidths = "0;50;150;20;40"
End Sub

Sub TampilkanSemua()
 Set Data = Sheets("Database")
  Set d = CreateObject("Scripting.Dictionary")
  Database = Data.Range("A2:E" & Data.[A65000].End(xlUp).Row).Value
  Me.ListBox1.List = Database
End Sub

Private Sub CommandButton1_Click()
Call TampilkanSemua
End Sub

Setelah itu coba anda run lalu lihat hasilnya


Ketika Anda memilih kelas X IPA 6 maka secara otomatis di listbox akan tampil data semua siswa yang berada di kelas X IPA 6.

Oke itu saja caranya silakan Anda praktekan jika ada pertanyaan silakan masuk di kolom komentar dan jika kalian mau lihat video tutorialnya silakan lihat di Youtube dengan kata kunci Excel-ID.

Semoga bermanfaat.



Related

Macro Excel VBA 4530269195294535862

Posting Komentar

Tulisan ini Bermanfaat..? Silakan berkomentar sesuai topik artikelnya, tidak dianjurkan menggunakan kata-kata yang dapat menimbulkan hal negatif. Mohon maaf apabila tidak memiliki etika akan Admin HAPUS tanpa pemberitahuan kembali. Terimakasih... salam Exceler

emo-but-icon

item