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





    
     

    
    






  












    
     

    
    






  








Kirim email ke