Hai Odong, Event change milik worksheet bisa dipergunakan. Langkah pertama adalah memeriksa cells yang berubah sesuai kondisi yang Anda tentukan atau tidak. Pemeriksaan kondisi dapat dilakukan dengan nested blok IF (coretan conditional dimulai dari sini <http://b-excel.blogspot.co.id/2013/08/belajarvba-008-blok-if.html>).
Urutan pemeriksaan : 1. jumlah cells yang berubah adalah 1 cell saja alias bukan akibat copas banyak cells --> target berisi 1 cell 2. baris Excel dari cell yang berubah > baris Excel header tabel 3. baris Excel yang berubah <= baris Excel terakhir table + 1 (1 adalah baris baru) 4. kolom Excel yang berubah adalah kolom tertentu Pada nomor 4 ini akan berupa if elseif else atau select case, karena : a. pemeriksaan pertama adalah kolom Excel bernomor kolom sekian milik kolom J, diikuti *proses yang dilakukan* jika benar bahwa cell yang berubah di kolom J. b. pemeriksaan kedua adalah kolom Excel bernomor kolom sekian milik kolom K, diikuti *proses yang dilakukan* jika benar bahwa cell yang berubah di kolom K c. pemeriksaan ketiga adalah kolom Excel bernomor diantara nomor kolom milik A dan nomor kolom milik i, yang diikuti *proses yang dilakukan* jika benar bahwa cell yang berubah ada diantara hal tersebut. Bagian *proses yang dilakukan* adalah berupa urutan tindakan berikut : > dari cell yang berubah -> offset 1 baris ke atas (kebaris sebelumnya) -> offset ke kolom awal yang akan di-copy -> di resize sebanyak 1 baris dan N kolom yang dibutuhkan (N disesuaikan dengan kondisi a,b, atau c) -> di-Copy > dari cell yang berubah -> offset ke kolom awal lokasi paste -> paste special values dan formatnya Selamat mencoba Wassalam, Kid 2015-11-16 18:07 GMT+07:00 odong nando odongna...@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>: > > > dear all, > > ahirnya setelah sekian lama, saya mengerti cara copas skrip even change > punya si sheet yang di buat bos kid... hehe... > tapi setelah pelaksanaan saya jadi bingung karena tidak sesuai dengan yang > di harapkan. > > seharusnya kondisinya : > 1. bila, pada kolom J di isi (input) maka kolom A:I baris sebelumnya akan > tercopy kebaris yang baru dan pada saat penginputan pada kolom K baris yang > sama maka kolom A:J tidak berubah > 2. bila pada kolom K di isi (input) maka kolom A:J baris sebelumnya akan > tercopy kebaris yang baru. > 3. bila awal penginputan baris terletak antara kolom A:I maka kondisi di > atas tidak berlaku > > agar lebih jelas makan saya lampirkan percobaan yang telah saya buat > > br, > > odong nando > > > > Pada Kamis, 22 Januari 2015 19:33, "'Mr. Kid' mr.nm...@gmail.com > [belajar-excel]" <belajar-excel@yahoogroups.com> menulis: > > > > oouw.... > > Jika ingin menggunakan VBA, mulailah dari sini > <http://b-excel.blogspot.com/2013/06/belajarvba-000-kenalan.html> dan > secara bertahap ke bahasan berikutnya. > Jika sudah mulai mempelajarinya sampai seri 005 saja, maka bagian kalimat > berbnyi : > *Script pada event change milik si sheet :* > akan mengarahkan Anda untuk ke-VBE, lalu ke object sheet yang akan > digunakan melalui frame object explorer dalam VBA Project tersebut, > kemudian membuat prosedur event yang bernama Change, barulah didalam > prosedur event yang terbentuk (dibuatkan oleh VBE) bisa diisi baris-baris > program yang berbunyi : > 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 > > Wassalam, > Kid > > > > 2015-01-22 21:57 GMT+11:00 odong nando odongna...@yahoo.com > [belajar-excel] <belajar-excel@yahoogroups.com>: > > > > mohon maaf bos kid...saya bingung.... > > > > > > *thx, odong nando* > > > Pada Kamis, 22 Januari 2015 17:42, "'Mr. Kid' mr.nm...@gmail.com > [belajar-excel]" <belajar-excel@yahoogroups.com> menulis: > > > > File lampirannya ndak ada macro nya tuh. > > Kalau mau buat sendiri, berikut kira-kira bunyinya : > *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 > > Wassalam, > Kid. > > > > On Thu, Jan 22, 2015 at 9:29 PM, odong nando odongna...@yahoo.com > [belajar-excel] <belajar-excel@yahoogroups.com> wrote: > > > bos kid, > makro ny eror, apa saya salah pake makronya ya...? > mohon di periksa bos kid. > baru coba ngopi mackro neh...udah salah... hehehe.... > > > > > > *thx, odong nando* > > > Pada Rabu, 21 Januari 2015 19:03, "'Mr. Kid' mr.nm...@gmail.com > [belajar-excel]" <belajar-excel@yahoogroups.com> menulis: > > > > Otomasi (Macro) di libre office atau star office bukan dengan VBA. Star > Office dengan Star Basic. Mirip VBA tetapi full OOP. Jadi, pengguna VBA > yang tidak terbiasa untuk menulis lengkap nama object beserta properti atau > methods yang akan digunakan biasanya akan mengawali usaha pembuatan otomasi > di star atau libre dengan susah payah. Tetapi, jika sungguh-sungguh terus > berusaha untuk memahami dan mulai memanfaatkan object dalam pemrograman > (termasuk untuk otomasi atau macro), maka akan terasa banyak kemudahan > dalam menyusun script yang full OOP. > > Wassalam, > Kid. > > > On Wed, Jan 21, 2015 at 10:52 PM, odong nando odongna...@yahoo.com > [belajar-excel] <belajar-excel@yahoogroups.com> wrote: > > > hehe.... > iya, bnr bos kid... > > sy mo coba dengan VBA, tp kira2 berfungsi di OS Ubuntu dengan open office > or libre office, ga ya bos kid ? > > > > > > *thx, odong nando* > > > Pada Rabu, 21 Januari 2015 18:31, "'Mr. Kid' mr.nm...@gmail.com > [belajar-excel]" <belajar-excel@yahoogroups.com> menulis: > > > > Hilangkan saja IF nya. > =M2 > Bagaimana ? > > > On Wed, Jan 21, 2015 at 10:21 PM, odong nando odongna...@yahoo.com > [belajar-excel] <belajar-excel@yahoogroups.com> wrote: > > > maaf bos kid, > > saya coba dengan yang formula, tapi masih berkendala, saat nilai idr or > usd hanya diisi salah satu nya ja maka yang timbul adalah nilai sebelumnya, > seperti terlampir... > tolong pencerahannya bos kid. > > > > > > *thx, odong nando* > > > Pada Rabu, 21 Januari 2015 17:14, "'Mr. Kid' mr.nm...@gmail.com > [belajar-excel]" <belajar-excel@yahoogroups.com> menulis: > > > > > > 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 odongna...@yahoo.com > [belajar-excel] <belajar-excel@yahoogroups.com>: > > > > > > 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* > > > > > > > > > > > > > > > > > > >