Tuesday, April 4, 2017

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.


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

2 komentar

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

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

Komentar Anda Sangat Menentukan Kelangsungan Blog ini
EmoticonEmoticon