Hai Tian,
Untuk cara definisi demikian, maka maksimalnya cuma 10 kolom (bawaan
oroknya dah begitu).
*Kasus dasar :*
Andai ada tabel di sheet 'Kid' dengan header di A1:Z1, dengan jumlah record
5 biji (di A2:Z6) dan nama listbox nya adalah lstKid
1. memanfaatkan rowsource (bound to range)
with lstKid
.columncount=26 'A s.d. Z ada 26 kolom
.columnheads=true
.rowsource=sheets("Kid").range("A2:Z6").address
end with
2. memanfaatkan properti List (unbound), item pertama adalah header :
with lstKid
.columncount=26
.columnheads=false
.list=sheets("Kid").range("A1:Z6").value
end with
atau kalau pakai array
dim vDaftar as variant
vDaftar=sheets("Kid").range("A1:Z6").value
with lstKid
.columncount=26
.columnheads=false
.list=vDaftar
end with
*Kasus kolom yang terpilih saja :*
Andai ada tabel di sheet 'Kid' dengan header di A1:Z1, dengan jumlah record
5 biji (di A2:Z6) dan nama listbox nya adalah lstKid
Pengennya, listbox hanya berisi data A2:Z6 beserta header hanya kolom
C,K,L,M,N,T,Y (7 kolom saja)
1. memanfaatkan rowsource (bound to range)
> harus menyediakan area range lain sebagai tabel kecil untuk daftar,
misal di BA1:BZ6
sheets("Kid").range("A:Z").entirecolumn.hidden=true 'hide
seluruh sumber data dulu
sheets("Kid").range("C:C,K:N,T:T,Y:Y").entirecolumn.hidden=false
'tampilkan kolom yang diinginkan
sheets("Kid").range("A1:Z6").specialcells(xlcelltypevisible).copy
sheets("Kid").range("BA1").pastespecial xlpastevalues
sheets("Kid").range("A:Z").entirecolumn.hidden=false
with lstKid
.columncount=*7* 'C,K,L,M,N,T,Y (*7* kolom saja)
.columnheads=true
.rowsource=sheets("Kid").range("BA2:BA6").resize(,*7*).address
end with
Untuk pakai properti List juga demikian.
*Kasus baris yang terpilih saja (misal hasil autofilter) :*
1. memanfaatkan rowsource (bound to range)
> harus menyediakan area range lain sebagai tabel kecil untuk daftar,
misal di BA1:BZ6
dim lLastRow as long
sheets("Kid").range("A1:Z6").specialcells(xlcelltypevisible).copy
sheets("Kid").range("BA1").pastespecial xlpastevalues
llastrow=sheets("Kid").cells(rows.count,"BA").end(xlup).row
with lstKid
.columncount=26
.columnheads=true
.rowsource=sheets("Kid").range("BA2:BZ2").resize(llastrow-1).address
'-1 karena header di baris ke-1
end with
*Kasus baris yang terpilih (misal hasil autofilter) dan kolom juga yang
terpilih : *[ C,K,L,M,N,T,Y (7 kolom saja) ]
dim lLastRow as long
sheets("Kid").range("A:Z").entirecolumn.hidden=true 'hide
seluruh sumber data dulu
sheets("Kid").range("C:C,K:N,T:T,Y:Y").entirecolumn.hidden=false
'tampilkan kolom yang diinginkan
sheets("Kid").range("A1:Z6").specialcells(xlcelltypevisible).copy
sheets("Kid").range("BA1").pastespecial xlpastevalues
sheets("Kid").range("A:Z").entirecolumn.hidden=false
llastrow=sheets("Kid").cells(rows.count,"BA").end(xlup).row
with lstKid
.columncount=*7* 'C,K,L,M,N,T,Y (*7* kolom saja)
.columnheads=true
.rowsource=sheets("Kid").range("BA2").resize(llastrow,*7*).address
end with
Kira-kira demikian.
Regards,
Kid
2017-07-23 5:09 GMT+07:00 'Christian. SimanjuntakTMJOAN'
[email protected] [belajar-excel] <
[email protected]>:
>
>
> DH,
>
> Semangat Pagi
>
> Para master mohon dibantu, saya punya masalah dengan kode ini :
>
> Sub table()
> Set datacoba = Sheets("arus kas")
> ListBox1.RowSource = ""
> With ListBox1
> .AddItem
> .List(.ListCount - 1, 0) = "NO REKENING"
> .List(.ListCount - 1, 1) = "NAMA BANK"
> .List(.ListCount - 1, 2) = "TANGGAL"
> .List(.ListCount - 1, 3) = "BUKTI TRANS"
> .List(.ListCount - 1, 4) = "SETORAN"
> .List(.ListCount - 1, 5) = "BUNGA"
> .List(.ListCount - 1, 6) = "PENARIKAN"
> .List(.ListCount - 1, 7) = "PAJAK"
> .List(.ListCount - 1, 8) = "BIAYA ADM"
> .List(.ListCount - 1, 9) = "SALDO"
> .ColumnWidths = 90 ";" 70 ";" 70 ";" 90 ";" 70 ";" 70 ";" 70 ";" 70 ";" 70
> ";" 70 ";" 70 ";" 90
> End With
> With datacoba
> Set rgBase = datacoba.Range("A2:A500").SpecialCells(xlCellTypeVisible)
> For Each sbase In rgBase
> With ListBox1
> .AddItem sbase.Value
> .List(.ListCount - 1, 0) = sbase.Value
> .List(.ListCount - 1, 1) = sbase.Offset(0, 1).Value
> .List(.ListCount - 1, 2) = sbase.Offset(0, 3).Value
> .List(.ListCount - 1, 3) = sbase.Offset(0, 5).Value
> .List(.ListCount - 1, 4) = sbase.Offset(0, 6).Value
> .List(.ListCount - 1, 5) = sbase.Offset(0, 7).Value
> .List(.ListCount - 1, 6) = sbase.Offset(0, 8).Value
> .List(.ListCount - 1, 7) = sbase.Offset(0, 9).Value
> .List(.ListCount - 1, 8) = sbase.Offset(0, 10).Value
> .List(.ListCount - 1, 9) = sbase.Offset(0, 11).Value
> End With
> Next sbase
> End With
> End Sub
>
> jika mau tampilkan kolom ke 10 dengan tambahan kode :
>
> .List(.ListCount - 1, 9) = "penerimaan" pasti terjadi error
>
> Terlampir screen shot erro nya
>
> pertanyaan :apakah untuk rumus diatas menampilkan data sheet update ke
> listbox hanya bisa sampai 10 kolom setelah itu error? , tolong dibantu para
> master
>
> terimakasih
>
>
>
>