Terima kasih Pak. Setelah beberapa meluangkan waktu berjam-jam di depan komputer, akhirnya saya bisa utak atik code tersebut meskipun tidak 100 persen memenuhi kebutuhan saya. tetapi ini menjadi pelajaran yang sangat berharga.
--- On Sat, 6/23/12, Kid Mr. <[email protected]> wrote: From: Kid Mr. <[email protected]> Subject: Re: [belajar-excel] Memodifikasi CODE VBA To: [email protected] Date: Saturday, June 23, 2012, 9:51 AM ralat : harusnya : 'dan dilanjutkan dengan proses lompat (offset) sebanyak 0 baris dan 0 kolom (bagian merah sepertinya harus 1 baris dan bukan 0 baris) Target.EntireRow.Copy Destination:=Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(0, 0) dan bukan 'dan dilanjutkan dengan proses lompat (offset) sebanyak 0 baris dan 0 kolom (bagian merah sepertinya harus 1 kolom dan bukan 0 kolom) Target.EntireRow.Copy Destination:=Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(0, 0) Kid. 2012/6/23 Kid Mr. <[email protected]> Isi script dalam sheet sheet1 Anda adalah : Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Cells.Count = 1 Then Target.EntireRow.Copy Destination:=Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(0, 0) End If End Sub Kira-kira Anda paham gak dengan script ini, sehingga bisa memutuskan suka atau tidak suka. Bukankah Anda suka dengan gaji ke-13 bahkan sampai ke-15 karena sudah paham kegunaan dari gaji itu ? Bunyi script di atas : 'jika nilai suatu cell dalam worksheet berubah (worksheet_change) maka jalankan prosedur ini, 'dan ingat-ingatlah semua range yang berubah tersebut (target as range) Private Sub Worksheet_Change(ByVal Target As Range) 'jika yang berubah adalah range di kolom ke (target.column) 1 (berarti kolom A) dan (AND) jumlah cell yang berubah nilai (target.cells.count) adalah 1 bijik, 'maka lakukanlah semua perintah dalam blok tersebut If Target.Column = 1 And Target.Cells.Count = 1 Then 'berikut perintah dalam blok kondisi di atas ketika range yang berubah di kolom ke-1 dan jumlah cell yang berubah hanya 1 : 'pada seluruh range yang berubah nilainya (Target), blok seluruh barisnya (EntireRow) kemudian lakukan copy ke clipboard (Copy) 'diikuti mem-paste ke sheet ke-2 (bukan sheet bernama 2) [Sheets(2)] pada cell (ingat cell dalam sheet ke-2) di baris terakhir sheets (rows.count) 'pada kolom ke-1, kemudian pindah keatas hingga bertemu cell yang tidak kosong (ingat, masih di kolom 1) [ End(xlup) ] 'dan dilanjutkan dengan proses lompat (offset) sebanyak 0 baris dan 0 kolom (bagian merah sepertinya harus 1 baris dan bukan 0 baris) Target.EntireRow.Copy Destination:=Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(0, 0) 'blok kondisi berakhir disini End If 'akhir pekerjaan dalam prosedur yang dijalankan karena adanya cell yang berubah nilai End Sub Sampai disini, biasanya akan mulai paham kenapa dan mengapa semua hal terjadi. kira-kira apa yang harus diubah untuk memenuhi kebutuhan Anda ? >> Tidak suka (mulai wajar setelah mulai memahami penyebab kejadian) kalau >> sebuah cell berubah di kolom A maka proses dijalankan ? Maka hapus bagian >> yang terkait tentang hal itu >> Ingin meng-copy 1 cell saja (tidak semua baris), maka hapus bagian blok >> seluruh baris >> sheet tujuan paste berbeda, maka ganti penunjukan ke sheet ke-2 dengan sheet >> tujuan Anda dinomor berapa >> lokasi hasil copy tidak pada kolom yang sama dan berurutan dengan yang >> diinput ? Maka susun kondisi baru berdasar nomor kolom seperti : (kalau yang di copy itu di kolom 1, maka paste ke kolom itu juga tapi di sheet dengan nomor tujuan anda (bisa 2, 3, dst) IF target.column=1 then target.copy destination:=sheets(nomor tujuan Anda).cells( target.row , target.column ) endif 'bisa jadi ada kondisi lain, kalau yang di copy kolom 7, maka paste ke sheet tujuan di kolom 23 IF target.column=7 then target.copy destination:=sheets(nomor tujuan Anda).cells( target.row , 23 ) endif Silakan mencoba mengubah sendiri agar bisa lebih memahami sebuah dunia baru tersebut pantas atau tidak pantas untuk disukai atau tidak disukai. Wassalam, Kid. 2012/6/23 guru muda <[email protected]> VBA Code yang ada saat ini dapat mengkopi secara otomatis dari isi dari baris /row 1 di Sheet1 ke cell baris 1 di Sheet2, setelah menekan tombol enter/tab/penunjuk panah pada keyboard. Bahkan di sepanjang kolom A di Sheet1, apabila kita memasukkan/mengetikkan huruf/angka maka akan masuk ke cell A1 di Sheet2 -Ini yang paling tidak saya suka dan mohon fungsi ini dihilangkan saja. Selengkapnya lihat lampiran

