Cara Menampilkan Data Pada ListView Vba Excel

Terus terang saja saya bukanlah programer Vba Excel yang mahir dan profesional. saya hanya belajar secara otodidak di internet. Mencoba menerapkan kode-kode yang saya dapatkan, menguji pada aplikasi yang saya sesuai dengan kebutuhan saya sendiri dan selanjutnya saya coba untuk publikasi di blog ini dengan harapan orang lain juga dapat mempelajarinya.

Bagi anda yang juga belajar otodidak seperti saya, jangan patah semangat. Cari terus informasi untuk bisa dipelajari dan terus mencari kode-kode Vba excel. Terapkan saja kode sudah didapatkan dan sesuaikan dengan kebutuhan.

Menampilkan data yang ada di database merupakan hal yang penting dalam sebuah aplikasi. Data dapat ditampilkan dengan menggunakan ListBox atau pun dengan menggunakan ListView. Untuk cara menampilkan data menggunakan ListBox sudah ada beberapa posting yang saya tulis di blog ini. Pada kesempatan ini kita akan mencoba menampilkan data dengan menggunakan ListView.

ListView pada standar tampilan ToolBox VBA Excel tidak ditampilkan, untuk menampilkan ListView pada ToolBox sangat mudah, anda tinggal mengikuti saja tutorial yang saya sajikan di posting "Cara Menampilkan ListView Di UserForm VBA Excel" step by step. Tampilan data memang ListView harus di akui lebih menarik. ListView akan membuat aplikasi lebih terkesan profesional. 

Namun beberapa excel tidak mendukung untuk filtur ListView dikarena file pendukung ListView yang tidak lengkap. Langkah-langkah bila tidak ada filtur ListView sudah pernah saya jelaskan berdasarkan pengalaman saya sendiri. Hanya programer mahir yang mengerti tentang solusi atas kendala-kendala yang dihadapi saat memakai ListView di UserForm.



Banyak cara untuk menampilkan data yang ada pada sheet pada ListView , disini saya akan mencoba mengurai 2 cara menampilkan data dari Sheet sebagai database,

Cara Menampilkan Data Sheet Pada ListView Vba Excel
  • Buka excel, dan buatlah data pada Sheet1 sebagaimana terlihat pada gambar diatas.
  • Pilih tab Developer klik Visual Basic atau dengan cara menekan tombol Alt+F11 secara bersamaan.
  • Pada jendela visual basic masukkan UserForm1, 1 buah ListView dan 2 Label. Untuk Properties masing-masing elemen tidak ada perubahan kecuali pada Label1 dengan Caption "Jumlah Data :". Properties Label2 dengan Caption "000". Sesuaikan letak masing-masing elemen sesuai dengan gambar diatas yeah..!!
Cara Pertama :
  • Pada langkah ini kita akan memasukkan kode yang berfungsi untuk menampilkan Headers ListView. Klik kanan UserForm1 dan pilih View Code, masukkan kode berikut ini pada Private Sub UserForm_Initialize()
Private Sub UserForm_Initialize()
'Memberikan Judul pada ListView
With ListView1
    .Gridlines = True
    .View = lvwReport
    .FullRowSelect = True

    .ColumnHeaders.Add Text:="NO", Width:=25
    .ColumnHeaders.Add Text:="ID PEG", Width:=40
    .ColumnHeaders.Add Text:="NAMA KARYAWAN", Width:=120
    .ColumnHeaders.Add Text:="JABATAN", Width:=90
    .ColumnHeaders.Add Text:="ALAMAT", Width:=85

End With
Call Tampil
End Sub

Keterangan :
  1. Gridlines untuk menampilkan garis-garis atau line pembatas tiap baris dan kolom dengan nilai "True", jika garis-garis-garis atau line pembatas tidak ingin ditampilkan anda tinggal menggantikan nilainya menjadi "False".
  2. View untuk menampilkan model tampilan, pilihan dapat dilihat pada properties ListView.
  3. FullRowSelect jika bernilai "True" maka select baris secara keseluruhan dan bila bernilai "False" select baris hanya pada awal baris saja.
  4. CulumnHeadres.Add Text:= merupakan data yang akan ditampilkan sebagai headers ListView.
  5. Widht:= merupakan lebar dari kolom headers ListView. dari keterangan ini anda dapat menyesuaikan sendiri seseuai dengan kebutuhan anda.
  • Kode berikut ini berfungsi untuk menampilkan data yang ada di Sheet ke ListView. masukkan kode di userform tuliskan kodenya di General saja.
Sub Tampil()
'Menampilkan data dari Worksheet Excell ke dalam ListView
Dim Item As ListItem
Dim ambildata As Integer
Dim i As Integer
 ListView1.ListItems.Clear
 ambildata = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
  For i = 2 To ambildata
  Set Item = ListView1.ListItems.Add(Text:=Sheet1.Cells(i, 1))
  Item.SubItems(1) = Sheet1.Cells(i, 2)
  Item.SubItems(2) = Sheet1.Cells(i, 3)
  Item.SubItems(3) = Sheet1.Cells(i, 4)
  Item.SubItems(4) = Sheet1.Cells(i, 5)

  Next
  Label2.Caption = ListView1.ListItems.Count  'Menghitung Data Dalam ListView

End Sub

Keterangan angka 2 merupakan acuan data yang akan ditampilkan di ListView. Jadi bila datanya di baris lain anda dapat menggantikan angka 2 tersebut sesuai dengan baris di sheet saja.

Demikian untuk kode cara pertama. Silahkan menguji aplikasi yang sudah dirancang sesuai dengan apa yang saya sajikan. jika anda sudah mengikuti dengan benar apa yang saya sajikan maka ListView akan tampil sebagaimana terlihat pada gambar gif diatas dengan cara pertama.

Cara Kedua :
Pada cara kedua ini agak berbeda pada cara menampilkan Headers dan data yagn ada pada Sheet untuk ditampilkan ke ListView. Headers yang ditampilkan berada pada baris pertama dari data yang akan kita tampilkan. Cara kedua ini lebih cocok jika kolom data sangat banyak, dengan cara ini Headers ListView tidak perlu kita tulis pada kode. akan tetapi pengkodean pada cara kedua ini akan mengambil semua data baris pertama yang menjadi acuan headers walaupun baris pertama terdapat kolom data sebanyak 100 atau 200 kolom data sekalipun. Dengan kata lain, Headers ListView dengan jumlah banyak lebih mudah ditampilkan dengan cara kedua ini. Ikuti langkah berikutnya untuk penempatan kode pada posisi yang benar.
  • Kode berikut ini untuk mengatur Properties dari ListView. Tempatkan kode berikut ini pada UserForm_Activate()
Private Sub UserForm_Activate()

    With Me.ListView1
        .Gridlines = True
        .HideColumnHeaders = False
        .View = lvwReport
        .FullRowSelect = True
     
    End With
        Call LoadListView
    End Sub
  • Kode berikut ini berfungsi untuk menampilkan data yang ada di Sheet ke ListView. masukkan kode di userform, tuliskan kodenya di General saja.
Sub LoadListView()

    Dim wksSource As Worksheet
    Dim rngData As Range
    Dim rngCell As Range
    Dim LstItem As ListItem
    Dim RowCount As Long
    Dim ColCount As Long
    Dim i As Long
    Dim j As Long

    Set wksSource = Worksheets("Sheet1")
 
   Set rngData = wksSource.Range("A1").CurrentRegion
 
    For Each rngCell In rngData.Rows(1).Cells
        Me.ListView1.ColumnHeaders.Add Text:=rngCell.Value, Width:=90
    Next rngCell
 
    'Menghitung jumlah acuan baris yang dijadikan range
    RowCount = rngData.Rows.Count
 
    'Menghitung jumlah acuan kolom yang dijadikan range
    ColCount = rngData.Columns.Count
 
    For i = 2 To RowCount
        Set LstItem = Me.ListView1.ListItems.Add(Text:=rngData(i, 1).Value)
        For j = 2 To ColCount
            LstItem.ListSubItems.Add Text:=rngData(i, j).Value
        Next j
    Next i

    'Menghitung jumlah data dan menampilkannya pada Label2
    Label2.Caption = ListView1.ListItems.Count  'Menghitung Data Dalam ListView

End Sub

Keterangan :
  1. Dim NamaVariable As Tipe Merupakan Deklarasi Variable, Variable yang merupakan sesuatu yang dapat menyimpan data sementara untuk menggunakan dalam perhitungan atau presentasi informasi. Data dapat menyimpan dalam berbagai jenis misalnya Number, String, Date, Boolean, dll.
  2. Set wksSource = Worksheets("Sheet1") Kode untuk mengarahkan Worksheets yang menjadi acuan data yang akan diambil.
  3. Set rngData = wksSource.Range("A1").CurrentRegion Kode yang berfungsi untuk mengambil data pada range A1 yang menjadi Acuan data untuk ditampilkan.
  4. For Each rngCell In rngData.Rows(1).Cells Kode yang berfungsi untuk mengambil data pada baris pertama pada sheet, Me.ListView1.ColumnHeaders.Add Kode yang memerintahkan agar menambahkan kolom headers ListView  yang ada pada UserForm dan selanjutnya,  Text:=rngCell.Value, Width:=90 Text pada kolom pertama  akan dibaca sebagai headers listview dengan lebar kolom headers 90pt. dan bila data ditambahkan pada baris pertama sheet maka akan otomatis dibaca sebagai headers ListView dengan kode Next rngCell.
  5. RowCount = rngData.Rows.Count untuk Menghitung jumlah acuan baris yang dijadikan range
  6. For i = 2 To RowCount hingga Next i merupakan kode ini membuat pernyataan data yang dibaca dan akan ditampilkan sepenuhnya di ListView dengan ketentuan i sama dengan 2 dari baris, jadi disini kita mengambil data pada baris kedua yaitu data  setelah baris yang dijadikan header.
  7. Label2.Caption = ListView1.ListItems.Count merupakan kode untuk menghitung dan menampilkan jumlah data yang ada di ListView ke Label2
Demikian untuk kode cara kedua. Silahkan menguji aplikasi yang sudah dirancang sesuai dengan apa yang saya sajikan. jika anda sudah mengikuti dengan benar apa yang saya sajikan maka ListView akan tampil sebagaimana terlihat pada gambar gif diatas dengan cara kedua.

Sekian posting  yang berkenaan dengan Cara Menampilkan Data Pada ListView Vba Excel. Penjelasan agak rumit dan kurang teratur karena saya sendiri belajar secara otodidak yang kurang memahami dan sama sekali tidak bisa menjelaskan secara ilmiah untuk menerjemahkan secara sempurna bahasa pengkodean. Namun anda bisa mencobanya sendiri sesuai dengan apa yang saya sampaikan. Bagi yang memiliki kendala atau memiliki kode lainnya yang bisa digunakan untuk ListView dapat dishare di kolom komentar.


Berlangganan update artikel terbaru via email:

19 Responses to "Cara Menampilkan Data Pada ListView Vba Excel"

  1. Salam..!
    menampilkan cari data di listview gimana ya?

    ReplyDelete
    Replies
    1. Maaf.. Belom tau Admin caranya.. ntar klo udah tau.. pasti ada postingnya..

      Delete
  2. mantap! List View apakah sama dengan List Box..

    Thx. Mohon penjelasannya..

    ReplyDelete
    Replies
    1. Agaak beda pada kodenya namun memiliki fungsi yang sama
      Terimkasih atas kunjungannya.

      Delete
  3. Kalo misalnya seperti registrasi, kita sudah punya data seperti nama peserta, dsb, lalu kita ingin menandai peserta yg telah regist dengan memasukkan nomor pesertanya gmana ya??

    ReplyDelete
    Replies
    1. Menandai yeah.. seperti memberikan warna berbeda pada yagn sudah registrasi....!! bleom punya ilmu ne saya klo macem tu.... ntar saya cariin....

      Delete
  4. Artikel bagus sangat membantu...
    untuk mengatur lebar tiap kolom di listview gmn?

    ReplyDelete
    Replies
    1. Saya juga belom liat ne propertiesnya ListView apakah ada Column Widht.. klo ada mungkin bisa diatur disana..

      Delete
  5. mas, kalau record tertentu seperti cell “status” yang ada pada kolom ke 9, seperti : proses, kirim, dan terima berbeda-beda warna bagaimana koding vba excelnya ya..??

    terimakasih sebelumnya.

    ReplyDelete
    Replies
    1. Terimkasih atas kunjungan dan pertanyaan terbaiknya...
      Mungkin bisa menuruk pada artikel yang sudah admin tulis disini

      http://www.senbakusen.com/2016/09/vba-excel-pemula-4-ganti-warna-fonts.html

      Silahkan dimodifikasi sesuai dengan kebutuhan..
      Mungkin jika sudah ada waktu menulis admin akan membuat artikel tentang pertanyaan ini.

      Delete
  6. ini blog sangat membantu dalam pengembangan belajar excel di level expert. Trus kembangkan gan ilmunya. Salam sesama blogger www.MauBergaya.blogspot.com

    ReplyDelete
    Replies
    1. an Stevanus..!! Terimakasih atas kunjungan dan komentar terbaiknya....

      Delete
  7. Gan untuk angka pada listview apakah bisa dibuat titik pemisah..
    Misal 10000 menjadi 10.000

    Dan bagaimana cara mengedit data pada listview.. saya sudah bisa menampilkan isi listview ke textbox tapi tidak bisa mengedit/membuat perintah edit. Mohon bimbinganya

    ReplyDelete
    Replies
    1. Untuk perintah edit.. dapat ditelusuri pada link berikut ini :
      https://www.senbakusen.com/2015/12/edit-data-melalui-userform-vba-excel.html

      Delete
  8. Gan untuk angka pada listview apakah bisa dibuat titik pemisah..
    Misal 10000 menjadi 10.000

    Dan bagaimana cara mengedit data pada listview.. saya sudah bisa menampilkan isi listview ke textbox tapi tidak bisa mengedit/membuat perintah edit. Mohon bimbinganya

    ReplyDelete
    Replies
    1. Titik pemisah otomatis. untuk angka bleom pernah coba dan bleom pernah ngutak-ngatik kode agar bisa menampilkan tanda pemisah pada nilai angka...
      mungkin karena kurang perhatian pada bagian2 angka..

      Terimkasih atas kunjungan dan komentarnya.. semoga apa yang saya sajikan dapat membantu dan memberikan informasi yang berguna...

      Delete
  9. Terima kasih untuk ilmunya, ini sangat bagus.

    ReplyDelete
  10. Terima kasih untuk ilmunya, ini sangat bagus.

    ReplyDelete
    Replies
    1. Terimkasih atas komentar terbaiknya... semoga betah membaca di blog ini...

      Delete

Komentar Anda Sangat Menentukan Kelangsungan Blog ini

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel