aih.. 5 hari belum ada yang reply ya....
Hai Odong,
Biasanya, data seperti kasus ini dibagi menjadi 2 buah tabel, yaitu tabel
invoice dan tabel item invoice.
Tabel invoice berisi unique invoice beserta keterangan umum invoice, yaitu
kolom A sampai i. Jadi, jika ada 3 invoice, maka tabel ini hanya berisi 3
record meskipun setiap invoice memiliki banyak items.
Tabel item invoice berisi seluruh item setiap invoice, yaitu kolom A dan
kolom J sampai N disusun berurutan (kolom A berisi nomor invoice seperti
kolom A yang ada di kasus, kolom B berisi data seperti kolom J yang ada di
kasus, dst). Dengan demikian, pengisian kolom J sampai N akan ditambahi
beban mengisi 1 kolom saja.
btw,
Pada kondisi dibuat ndak biasa, seperti tabel item invoice yang disertai
keterangan tentang invoicenya pada kasus ini, maka bisa dengan 2 cara :
1. menggunakan kolom-kolom berformula dikanan tabel.
>> jadi tabel yang ada (misal sekarang ada 14 kolom) akan ditambahi 14
kolom baru lagi (dalam tabel yang sama), yang recordnya adalah hasil
formula IF sederhana agar komputasi tidak berat.
>> inputan user di 14 kolom pertama dalam tabel yang telah dimodifikasi ini
akan ada cell kosong di kolom A sampai i ketika user hanya mengisi di kolom
J sampai N.
>> formula di 14 kolom baru yang berisi formula IF akan menyusun bentuk
tabel utuhnya.
2. dengan VBA memanfaatkan event change milik sheet yang ditempati si tabel.
>> susunan script akan tergantung karakteristik penginputan data
>> contoh : input dilakukan dengan cara entry data per record (tidak ada
copas banyak record) dan penyalinan dipicu oleh inputan di kolom J, dengan
header data pasti sebaris di baris 1 Excel dan record dimulai dari A2.
Script pada event change milik si sheet :
with target
if .count=1 then
if .column=10 then '(kolom J adalah kolom ke-10)
if len(.offset(1).value)=0 then 'kolom J baris berikutnya yang
diubah adalah cell kosong -> inputan record baru saja
application.enableevents=false
'proses disini. barisnya target adalah baris record baru.
butuh ambil data di baris sebelumnya yang baru
range("a1:i1").offset( .row - 1 ).value =
range("a1:i1").offset( .row - 2 ).value
application.enableevents=true
endif
endif
endif
end with
*** menuju ke baris 10 dari baris 1 adalah offset dari baris 1 sebanyak 9
baris alias 10 - 1 baris -> sebabnya .row - 1
*** menuju baris 9 atau 1 baris sebelum baris 10 dari baris 1 adalah offset
dari baris 1 sebanyak 8 baris alias 10 - 2 -> sebabnya .row-2
Kira-kira demikian.
Wassalam,
Kid.
2015-01-21 20:12 GMT+11:00 odong nando [email protected] [belajar-excel]
<[email protected]>:
>
>
>
>
>
> dear all,
>
> saya ingin menanyakan tentang table excel, adakah cara menggunakan table
> excel agar lebih kompak dan lebih dinamis lg.
>
> utk lebih jelas bisa lihat contoh terlampir
>
>
>
>
>
> *thx, odong nando*
>
>
>
>