Monday, July 23, 2018

√ Sortir Data Pada Listbox Dengan Combobox Pada Userform



Hai sobat Excel-ID, gimana kabarnya? biar tetap dalam keadaan sehat dan masih tetap semangat untuk berguru excel.

Pada goresan pena 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 dikala Anda menentukan data pada combobox maka listbox akan tampil sesuai dengan kriteria yang dipilihnya.

Oke pribadi 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 sajian Depelover kemudian pilih View Code kemudian 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 dapat menambahkan Commandbutton. Untuk Commandbutton dapat ditambahkan dapat juga tidak sebab tombol ini nantinya hanya dipakai untuk clear data saja dan ini juga dapat dilakukan pada object Combobox dengan menambahkan satu procedur khusus.

Desain Userform kira-kira tampilannya menyerupai berikut


Setelah desain Anda buat langkah berikutnya kita akan menciptakan 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 kemudian lihat hasilnya


Ketika Anda menentukan 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 jikalau ada pertanyaan silakan masuk di kolom komentar dan jikalau kalian mau lihat video tutorialnya silakan lihat di Youtube dengan kata kunci Excel-ID.

Semoga bermanfaat.




Sumber http://www.excel-id.com/