Saturday, November 4, 2017

Cara Filter/Cari Data Berdasarkan Tanggal Menggunakan DTPicker Vba Excel

Pada kesempatan ini Admin akan mencoba share artikel mengenai Cara Filter/Cari Data Berdasarkan Tanggal Menggunakan DTPicker Vba Excel. Dengan membuat filtur filter/cari data berdasarkan tanggal pengguna aplikasi Vba Excel dapat menyeleksi data dalam kurun waktu tertentu.

Dalam beberapa aplikasi seperti aplikasi yang digunakan di supermarket, Aplikasi keuangan, Aplikasi Tabungan dan lainnya terdapat data dalam kurun waktu tertentu yang dapat difilter dengan tujuan membuat laporan berdasarkan dari tanggal hingga tanggal tertentu.

Tampilan Fungsi Filter Berdasarkan Tanggal Di UserForm Vba Excel

Dengan membuat laporan berdasarkan kurun waktu dari tanggal hingga tanggal tertentu, laporan yang dihasilkan akan lebih rinci.

Pada dasarnya untuk membuat laporan berdasarkan tanggal pada Excel sudah terdapat fasilitas untuk menfilter dengan cara menempatkan mouse pada header tabel selanjutnya klik menu Data dan pilih Filter. 

Dengan menggunakan langkah ini pada bagian header tabel sudah terdapat tombol panah kecil untuk dapat kita klik dan mencentang tanggal yang dinginkan dan membuang centang yang tidak diinginkan.

Hal tersebut dapat dapat dilakukan dengan mudah tanpa harus bersusah payah membuat UserForm, tombol-tombol dan element yang dibutuhkan serta penerapan dan penempatan kode yang tepat yang cendrung lebih sulit.

Namun beberapa orang yang suka berimajinasi dan mengembangkan aplikasi agar terlihat lebih profesional tentu akan lebih suka dan menyenangkan rasanya  jika bersusah payah dengan kode dan UserForm agar mendapatkan hasil yang maksimal. 

Bagi anda yang tidak ingin berimajinasi dan bersusah payah dengan penerapan kode lebih baik sampai disini saja membacanya. Agar anda tidak kebingungan. Apalagi yang membuat artikel merupakan pelajar otodidak.

Bagi anda yang ingin berimajinasi agar aplikasi yang sedang dibuat lebih terlihat profesional silahkan dilanjutkan.

Cara Filter/Cari Data Berdasarkan Tanggal Menggunakan DTPicker Vba Excel
  • Buka Excel dan ubah nama Sheet1 menjadi "Data" selanjutnya buatlah data data seperti yang terlihat pada tabel pada gambar format gif dibawah sebagai percobaan yang akan kita lakukan pada artikel ini. Ubah nama Sheet2 menjadi "Filter. Perhatikan gambar format gif dibawah ini. Atau anda dapat menyesuaikan nama sheet dengan kebutuhan aplikasi yang sedang anda buat. Ini hanya sekedar contoh penerapan saja.
Properties Yang Dibutuhkan Filter Berdasarkan Tanggal

  • Jika sudah membuat data dan nama sheet, selanjutkan kita akan bermain di Vba dengan cara klik pada tab Developer dan pilih Visual Basic atau dengan menekan tombol perintah  pintasan keyboard Alt + F11
  • Tambahkan element yang dibutuhkan untuk membuat aplikasi dengan Vba Excel yaitu UserForm1, Frame1, DTPicker1, DTPicker2, CommandButton1, ComammandButton2 dan ListBox1
  • Sesuaikan properties UserForm1 dengan selera anda sendiri. Frame1 dengan warna anda sendiri, DTPicker1 dan DTPicker2 biarkan dengan standar propertiesnya, CommandButton1 ubah Caption saja menjadi "Cari" dan CommandButton2 ubah properties Caption dengan "Tampilkan Semua"
  • Sementara untuk ListBox1 ubah warna sesuai dengan selera masing-masing. Namun perlu diperhatikan properties ListBox1 yang terdapat pada ColumnCount = 6, pada ColumnHeads = True, pada ColumnWidths = 80 pt;90 pt;80 pt;60 pt;80 pt;60 pt, dan pada RowSource = A2:F250.
  • Jika proses perancangan di UserForm sudah selesai selanjutnya kita akan menempatkan kode pada bagian-bagian yang dibutuhkan. Copy dan pastekan kode berikut ini di jendela kode UserForm. Kode berikut ini berfungsi untuk menampilkan data yang ada pada sheet ke ListBox1.

Sub TabelData()
    Set DataBaseNya = Sheets("Data")
    ListBox1.RowSource = ""
    With ListBox1
        .AddItem
        .List(.ListCount - 1, 0) = "NO ID NASABAH"
        .List(.ListCount - 1, 1) = "NAMA"
        .List(.ListCount - 1, 2) = "ID TRANSAKSI"
        .List(.ListCount - 1, 3) = "TANGGAL"
        .List(.ListCount - 1, 4) = "TRANSAKSI"
        .List(.ListCount - 1, 5) = "KETERANGAN"
        .ColumnWidths = 90 & ";" & 80 & ";" & 60 & ";" & 60 & ";" & 60 & ";" & 80
    End With
    With DataBaseNya
        Set RangeBase = DataBaseNya.Range("A2:A250").SpecialCells(xlCellTypeVisible)
        For Each SabotaseSaja In RangeBase
    With ListBox1
        .AddItem SabotaseSaja.Value
        .List(.ListCount - 1, 0) = SabotaseSaja.Value
        .List(.ListCount - 1, 1) = SabotaseSaja.Offset(0, 1).Value
        .List(.ListCount - 1, 2) = SabotaseSaja.Offset(0, 2).Value
        .List(.ListCount - 1, 3) = SabotaseSaja.Offset(0, 3).Value
        .List(.ListCount - 1, 4) = SabotaseSaja.Offset(0, 4).Value
        .List(.ListCount - 1, 5) = SabotaseSaja.Offset(0, 5).Value
    End With
        Next SabotaseSaja
    End With
End Sub

  • Copy dan pastekan kode berikut ini pada jendela kode UserForm1. Kode berikut ini berfungsi untuk perintah mengembalikan tampilan data setelah terjadi filter. Sehingga data yang sebelumnya hanya ditampilkan data yang telah difilter di ListBox1 akan dikembalikan menampilkan semua data di ListBox1.

Sub TampilkanSemua()
    Application.ScreenUpdating = False
    Sheet1.AutoFilterMode = False
    ListBox1.RowSource = ""
    Data = "A2:F250"
    ListBox1.ColumnCount = 6
    ListBox1.RowSource = Data
    With ListBox1
    .ColumnWidths = 80 & ";" & 90 & ";" & 80 & ";" & 80 & ";" & 80 & ";" & 80
    End With
     Sheet1.Range("A1:F1").AutoFilter
    ActiveWorkbook.Worksheets("Data").AutoFilter.Sort.SortFields.Clear
    Set RangeData = Sheet1.Range("C1")
        RangeData.Sort RangeData.Resize(1, 1), xlAscending, Header:=xlYes, Orientation:=xlSortColumns
    Application.ScreenUpdating = True
End Sub

  • Pokoknya Copy dan pastkan saja kode berikut ini yang akan otomatis bekerja saat UserForm tampil.

Private Sub UserForm_Initialize()
    TabelData
    Sheets("Data").Range("A1:F1").AutoFilter
    TampilkanSemua
End Sub

  • Copy dan pastekan kode berikut ini pada CommandButton1 dengan Caption "Cari". Fungsi kode ini untuk memberikan perintah memfilter sesuai kreteria yang dimasukkan berdasarkan tanggal pada DTPicker1 dan DTPicker2.

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
ActiveWorkbook.Worksheets("Data").AutoFilter.Sort.SortFields.Clear
 Set RangeDataBase = Sheet1.Range("d1")
    RangeDataBase.Sort RangeDataBase.Resize(1, 1), xlAscending, Header:=xlYes, Orientation:=xlSortColumns

Sheet2.Range("A1").Value = DTPicker1.Value
Sheet2.Range("B1").Value = DTPicker2.Value
Sheets("Data").Range("D2:D102").AutoFilter Field:=4, _
    Criteria1:=">=" & Sheet2.Range("A1").Value, _
    Operator:=xlAnd, _
    Criteria2:="<=" & Sheet2.Range("B1").Value
    Call TabelData

Application.ScreenUpdating = True

End Sub

  • Copy lagi dong..!! dan pastekan kode berikut ini pada CommandButton2 dengan Caption "Tampilkan Semua". Kode berikut ini akan memanggil perintah Sub TampilkanSemua()

Private Sub CommandButton2_Click()
    TampilkanSemua
End Sub


Sudah itu saja kode-kode yang berkhasiat untuk filter atau pencarian data berdasarkan tanggal menggunakan DTPicker dan menampilkan hasil filter pada ListBox1.

Mohon maaf jika penyampaian Admin yang tidak memberikan penjelasan akurat. Admin sendiri bingung dengan kode-kode Vba Excel diatas.

Logikanya Khasiat dari kode-kode diatas telah Admin rasakan. Liat ajha gambar format gif yang diawal artikel sebagai buktinya.

Demikian yang dapat Admin sampaikan ala Otodidak tentang Cara Filter/Cari Data Berdasarkan Tanggal Menggunakan DTPicker Vba Excel. Semoga membantu dan menjadi referensi bagi yang sedang mencari informasi Cara Filter/Cari Data Berdasarkan Tanggal Menggunakan DTPicker Vba Excel.

Jika ada pertanyaan, saran dan kritikan dapat disampaikan melalui kolom komentar yang terdapat dibawah.

Jika artikel ini dirasakan ada manfaat mohon dapat dishare agar teman-teman lain juga tau tentang Khasiat kode vba ini.

Dapatkan dan miliki file contoh penerapan Vba Excel serta Aplikasi sederhana yang Admin sajikan di blog ini dengan cara menghubungi WA Admin dengan nomor 0811-6822-023.

Sedikit informasi tambahan tentang artikel ini, Admin tidak berhasil memperoleh khasiat kode-kode diatas jika kalender yang digunakan komputer menggunakan Indonesia.  Namun berjalan lancar jika pengaturan kalender komputer menggunakan English State (US).

Nama Admin Zaki Fitriadi, Pengangguran, Blogger Awam Kelahiran Banda Aceh 1982, Mengenal Blog Tahun 2010, Baru Aktif Tahun 2015, Berbagi Apa Yang Dipejari Secara Otodidak di Dunia Maya

Komentar Anda Sangat Menentukan Kelangsungan Blog ini
EmoticonEmoticon