Copy Perbaris dengan macro

Pada tulisan kali ini, saya mecoba menghadirkan bagaimana kita mengcopy range data (A3:E14) yang berada di sheet2 ke sheet3, sebetulnya masih sama dengan tulisan sebelumnya , tapi kali ini mengcopy tidak langsung dalam satu range, tetapi kita akan mengcopy berbaris, artinya setaip selesai satu baris dibaca (A3:E3), data langsung dicopy ke sheet3, kemudian kembali membaca baris berikutnya sampai data habis, atau kolom A ketemu data kosong ( Empty Cell ).
Langakah pertama buatlah satu button mulai di sheet1 lalu tambahkan dengan coding VBA seperti dibawah ini :
Sub btn_mulai()
   Sheet2.Activate
   Range(“A3”).Select
 
   temp = ActiveCell.Offset(0, 0).Value
   Do While temp <> “”
      temp = ActiveCell.Offset(0 + n, 0).Value
      kode = ActiveCell.Offset(0 + n, 1).Value
      nama = ActiveCell.Offset(0 + n, 2).Value
      jumlah = ActiveCell.Offset(0 + n, 3).Value
      harga = ActiveCell.Offset(0 + n, 4).Value
    
      If temp <> “” Then
            Sheet3.Activate
            Range(“A3”).Select
              ActiveCell.Offset(0 + n, 0).Value = temp
              ActiveCell.Offset(0 + n, 1).Value = kode
              ActiveCell.Offset(0 + n, 2).Value = nama
              ActiveCell.Offset(0 + n, 3).Value = jumlah
              ActiveCell.Offset(0 + n, 4).Value = harga
            If n > 0 Then
              ActiveCell.Offset(0 + n, 5).Value = (jumlah * harga)
              ActiveCell.Offset(0 + n, 5).Font.Bold = True
            Else
              ActiveCell.Offset(0 + n, 5).Value = “Total”
              ActiveCell.Offset(0 + n, 5).Font.Bold = True
            
            End If
      End If
      Sheet2.Activate
      n = n + 1
   Loop
   Sheet3.Activate
   Range(“A3”).Select
End Sub
Selanjutnya buatlah contoh data disheet2 seperti dibawah ini :
Contoh Data
Setelah data siap, data akan siap dicopy ke sheet3 dengan cara mengklik butto mulai yang dibuat sebelumnya.
Sebagai tambahan, buat juga satu button hapus di sheet1, untuk menghapus range hasil copy pada sheet3, dengan coding seperti dibawah ini (bisa disesuaikan range mana yang akan mau dihapus) :
Sub btn_hapus()
    Sheets(“Sheet3”).Select
    Range(“A1:H100”).Select
    Selection.Clear
    Range(“A1”).Select
    Sheets(“Sheet1”).Select
End Sub
Dengan tampilan sheet1 seperti dibawah ini :
Contoh Tampilan Awal
Copy perbaris with Macro 2
Sedikit berbeda dengan sebelumnya, data yang akan dicopy adalah mulai cell A3 sampai data habis,
pada coding ini jumlah kolom kekanan ditentukan 100  (dim datakol 100), anda boleh merubahnya sesuai keinginan, untuk jumlah baris tidak ditentukan, yakni sampai pada kolom A ditemukan data kosong (empty cell).
Setiap baris perkolom/cell yang dibaca yakni dari cell A3, data akan ditampung dalam sebuah array, kemudian jika pada cell sudah ketemu data kosong, data akan dicopy ke sheet3.
Coding untuk mengcopy data dari sheet2 ke sheet3 sesuai ilustrasi diatas adalah sebagai berikut :
Sub btn_mulai()
   Sheet2.Activate
   Range(“A3”).Select
   Dim datakol(100)
   brs = 0
   temp = ActiveCell.Offset(0, 0).Value
   Do While temp <> “”
      temp = ActiveCell.Offset(0 + brs, 0).Value
    
      ‘Baca/Ambil data setiap kolom pada Sheet2
      tmpkol = ActiveCell.Offset(n, 0).Value
      kol = 0
      Do While tmpkol <> “”
           datakol(kol) = ActiveCell.Offset(0 + brs, kol).Value
         
           tmpkol = ActiveCell.Offset(0 + brs, kol).Value
           kol = kol + 1
      Loop
    
      ‘Cetak hasil baca pada sheet3
      If temp <> “” Then
            Sheet3.Activate
            Range(“A3”).Select
              For ctk = 0 To (kol – 1)
                  ActiveCell.Offset(0 + brs, ctk).Value = datakol(ctk)
              Next
      End If
    
      Sheet2.Activate
      brs = brs + 1
   Loop
   Sheet3.Activate
   Range(“A3”).Select
End Sub

Copy Perbaris dengan macro Rating: 4.5 Diposkan Oleh: as