Cari Data "ComboBox Bertingkat"

Perhatikan gambar gif dibawah..!!! Ngak tau judulnya apa..!! mungkin namanya ComboBox bertingkat..!!! Bisa jadi..!! Ketika ComboBox1 Terisi dengan pilihan Jenis Kelamin makan ComboBox2 akan memberikan pilihan Laki-Laki dan perempuan, Bila ComboBox1 terisi dengan pilihan Tahun maka ComboBox2 memberikan pilihan Tahun tertentu untuk dipilih dan seterusnya. Fungsinya yeah seperti yang ada pada gambar dibawah.

Digunakan untuk mencari atau menfilter data berdasarkan kategori selanjutnya data hasil filter akan ditampilkan pada ListBox. 

Cari Data "ComboBox Bertingkat"
Admin sangat menyarankan bagi yang sedang mempelajari kode Vba Excel agar membuat file contoh penerapan kode. Dengan membuat file contoh penerapan kode akan mempercepat memahami penggunaan dan fungsi dari kode yang diterapkan


Langkah-langkah Membuat ComboBox Bertingkat Pada Pencarian Data
  • Buka excel, ubah "Sheet1" menjadi "DATA dan "Sheet2" menjadi "LAPORAN"
  • Selanjutnya kita membuat Advance Filter Simak Posting Cari Data Dengan TextBox Tampil Di ListBox. Sesuaikan ajha sesuai kebutuhan Advance Filter "Copy To Another Location " dimana ListRange di ambil pada tabel di Sheet "Data", Creteria Range K1 dan K2 di Sheet "DATA" dan Copy To di Sheet "LAPORAN" di "B3:G3". Sekilas coba perhatikan gambar berikut sebagai petunjuk
Cari Data "ComboBox Bertingkat"
Sheet "Data" 
  • Di Sheet "DATA" Tabelnya buat Range Dinamis, Baca Range Dinamis
Cari Data "ComboBox Bertingkat"
Sheet "LAPORAN"
  • Tabel di Sheet "LAPORAN" buat Range Dinamis lagi ya..!! Baca Range Dinamis
  • Pilih Developer, buka visual basic buatlah rancangan UserForm seperti pada gambar berikut ini.
Cari Data "ComboBox Bertingkat"
  • Selanjutnya klik kanan ComboBox1 pilih View Code dan tempatkan kode berikut pada ComboBox1_Change()
Private Sub ComboBox1_Change()Dim i As IntegerDim Ws As Worksheet: Set Ws = Sheet1Dim Cb As StringDim tmp As StringCb = ComboBox1.ValueComboBox2.ClearSelect Case CbCase "JENIS KELAMIN"With UserForm1.ComboBox2For i = 3 To Cells(Rows.Count, 3).End(xlUp).RowIf InStr(1, tmp, Ws.Range("C" & i) & ";") = 0 Then         .AddItem Ws.Range("C" & i)        tmp = tmp & Ws.Range("C" & i) & ";"            End If        Next i    End WithCase "TANGGAL"With UserForm1.ComboBox2For i = 3 To Cells(Rows.Count, 4).End(xlUp).RowIf InStr(1, tmp, Ws.Range("D" & i) & ";") = 0 Then         .AddItem Ws.Range("D" & i)        tmp = tmp & Ws.Range("D" & i) & ";"            End If        Next i    End WithCase "BULAN"With UserForm1.ComboBox2For i = 3 To Cells(Rows.Count, 5).End(xlUp).RowIf InStr(1, tmp, Ws.Range("E" & i) & ";") = 0 Then         .AddItem Ws.Range("E" & i)        tmp = tmp & Ws.Range("E" & i) & ";"            End If        Next i    End WithCase "TAHUN"With UserForm1.ComboBox2For i = 3 To Cells(Rows.Count, 6).End(xlUp).RowIf InStr(1, tmp, Ws.Range("F" & i) & ";") = 0 Then         .AddItem Ws.Range("F" & i)        tmp = tmp & Ws.Range("F" & i) & ";"            End If        Next i    End WithEnd SelectEnd Sub
  • Berikutnya klik kanan ComboBox2 pilih View Code dan letakkan kode berikut pada ComboBox2_Change()
Private Sub ComboBox2_Change()Sheets("DATA").Range("K2").Value = UserForm1.ComboBox2.TextEnd Sub
  • Pasang Kode Berikut dimana ajha di General
Kode Untuk Menampilkan ListBox dari Sheet "DATA"
Sub ListData1()With UserForm1.ListBox1.ColumnCount = 6.ColumnHeads = False.ColumnWidths = "50".RowSource = "RDATA".BoundColumn = 0End WithEnd Sub

Kode Kategori Untuk ComboBox1
Sub Kategori()Dim i As IntegerDim Ws As Worksheet: Set Ws = Sheet1With UserForm1.ComboBox1For i = 3 To 6.AddItem Ws.Cells(2, i)Next iEnd WithEnd Sub
  • Tempatkan Kode di UserForm_Initializ Berikut ini
Private Sub UserForm_Initialize()Call ListData1Call KategoriCall RemoveCaption(UserForm1)End Sub

  • Klik kanan Label2 yaitu yang Caption "Cari" pilih View Code dan Tempatkan Kode berikut ini 

Private Sub Label2_Click()Dim Ws As Worksheet: Set Ws = Sheets("DATA")Dim WsRekap As Worksheet: Set WsRekap = Sheets("LAPORAN")Dim R As Range: Set R = Ws.Range("RDATA")Dim RFilter As Range: Set RFilter = Ws.Range("K1:K2")Dim RCari As Range: Set RCari = Ws.Range("K2")Dim C As VariantIf Ws.FilterMode Then Ws.ShowAllDataIf UserForm1.ComboBox2.Text = "" Then    MsgBox "Pilih Rekap Laporan Terlebih Dahulu..!!", 64, "Filter Data"    Exit SubEnd If        UserForm1.ComboBox2.Text = RCari        R.AdvancedFilter Action:=xlFilterCopy, _            CriteriaRange:=RFilter, CopyToRange:=WsRekap.Range("B3:G3"), Unique:=FalseListBox1.RowSource = "RLAPORAN"End Sub

  • Label3  yang Captionya "Tampil Semua" Klik kanan pilih View Code dan pasang kode dibawah ini 

Private Sub Label3_Click()
Call ListData1

End Sub

  • Selesai dech..!!! Bingungkan?? Yang nulis ajha bingung..!!! Biar ngak bingung download ajha  file yang udah siap saya buat. dikotak-katik ajha sendiri. klo ada kendala tulis di komentar..!!

Baca Juga : Untuk Sembunyikan Application Title

Demikian posting Cari Data "ComboBox Bertingkat" semoga dapat dikembangkan berdasarkan keinginan dan kebutuhan masing-masing. Jika posting ini dianggap bermanfaat maka mohon dapat mengklik tomboh share media sosial agar teman-teman yang lain juga tahu. bila ingin menyampaikan masukan pada admin blog dapat ditulis pada kolom komentar dengan bijak.

6 komentar untuk "Cari Data "ComboBox Bertingkat""

  1. cara buka excelnya gmn?
    saya mau liat kode nya.
    pas di buka excel langsung kebuka aplikasinya.
    tolong di bantu y.
    terima kasih

    BalasHapus
    Balasan
    1. pertama buka kan sebuah excel dengan Visual Basicnya..
      Nti stop melalui perintah yang ada pada visual basicnya...

      Hapus
  2. min, minta tolong dong, saya baru belajar vba. saya coba buat form yg isinya kelas, nama, pembayaran dan tanggal. pada kelas saya buat combobox dengan mengisi range name pada rowsourcenya. yang ingin saya tanyakan, bagaimana penulisan formula agar value dari combobox kelas menjadi nilai pada rowsource combobox nama, sebelumnya sudah saya buat name range untuk setiap kelasnya, mohon dibantu ya min, terima kasih.

    BalasHapus
  3. link downloadnya tidak bisa min

    BalasHapus
    Balasan
    1. Terimkasih laporannya.. Sementara saya hapus saja karena biar tidak ada orang lain yang kecewa

      Hapus
    2. MIN kalu untuk penggunaan cmboboxnya lebih dari 1 baris gimana buat cording seacrhnya ??
      contohnya kalu funsi simpan kan cordingnya

      WS.Range("F" & BARISAKHIR).Value = Me.CMBTGLLHR.Text & ", " & Me.CMBBLNLHR.Text & " " & Me.CMBTHNLHR.Text
      kau cari mana cara nya ??

      Hapus

Komentar Anda Sangat Menentukan Kelangsungan Blog ini